使用Pandas转置数据并将原第一列设置为表头的问题求解
解决Pandas数据转置后出现多余数字表头的问题
你出现多余表头的原因是:读入原始数据时设置header=None,DataFrame会默认生成从0开始的整数行索引,转置后这部分索引会成为新的列名,因此出现了1、2、3、4的多余行。
可行代码
import pandas as pd # 读入原始tab分隔的无表头数据 df2 = pd.read_csv('3.dat', sep='\t', header=None) # 将存储Sample名称的第0列设为行索引后再转置,Sample名称会自动成为新的列名 df2_transposed = df2.set_index(0).T # 输出时关闭行索引写入,即可得到符合要求的结果 df2_transposed.to_csv('3_0T.dat', sep='\t', index=False)
逻辑说明
- 原始数据有2列,第0列存Sample标识,第1列存对应数值
set_index(0)把Sample标识转为行索引,转置后行索引会自动映射为新DataFrame的列名,直接实现Sample作为表头的需求- 输出时设置
index=False,避免默认的整数行索引被写入到结果文件中
内容的提问来源于stack exchange,提问作者UglyBetty
相关产品推荐
相关产品推荐

