txt文件行列转换(也适用于csv)

法一:使用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")

大功告成。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值