法一:使用python
源数据为:
Tag GSM978562 GSM978563 GSM978564 GSM97856
ATPIF1 186.1746979 156.4715424 218.4252167 554.4112549
STAMBP 68.56755829 118.3703918 83.85186005 139.4944763
MAOB 56.47382736 31.05650902 46.25498581 25.35993385
RNF138 192.9549408 744.3728027 319.039856 769.892334
SDK1 114.5905762 56.33004761 144.2001495 94.7133255
MED12L 70.36869049 75.0520401 90.65950775 140.6197052
MSRA 116.5597153 120.0644913 109.2241669 388.7080994
代码为:
alldata=[]
with open('D:/test.txt',encoding='utf-8') as f:
for line in f.readlines():
line = line.strip('\n') #去除文本中的换行符
values = line.split() #使用空格作为分隔符,并返回一个list
alldata.append(values)
print(values)
f.close()
#print(alldata)
cols = len(alldata[0])
rows = len(alldata)
print(cols)
print(rows)
with open('D:/test_res.txt','w',encoding='utf-8') as f: #参数记得加上w ,前面写文件参数应该是默认加上r
for j in range (0,cols):
#tmpline = []
for i in range(0,rows):
#tmpline.append(alldata[i][j])
f.write(''.join(alldata[i][j])) #list 转化为字符串
if(i != rows-1): #每行的行尾不加tab
f.write('\t')
f.write('\n')
结果为:
Tag ATPIF1 STAMBP MAOB RNF138 SDK1 MED12L MSRA
GSM978562 186.1746979 68.56755829 56.47382736 192.9549408 114.5905762 70.36869049 116.5597153
GSM978563 156.4715424 118.3703918 31.05650902 744.3728027 56.33004761 75.0520401 120.0644913
GSM978564 218.4252167 83.85186005 46.25498581 319.039856 144.2001495 90.65950775 109.2241669
GSM97856 554.4112549 139.4944763 25.35993385 769.892334 94.7133255 140.6197052 388.7080994
这里输出为txt,如何转化为csv呢?
因为代码中输出到txt使用的分隔符是\t即tab键,因此复制全部的txt内容,复制到csv文件中,一般就可以了。
如果不行的话:
使用excel打开csv文件——数据——分列——分隔符号——点击tab和空格,就可以区分出使用tab键和空格分割出来的数据,行列整齐。
法二:使用R语言
几句话即可
打开rstudio,导入数据
data = read.csv("D:/id_transform_res.csv")
verdata = t(data)
write.csv(verdata, file = "D:/output_data.csv")
大功告成。