问题是,当我转置DataFrame时,转置的DataFrame的标题变为Index数值而不是“id”列中的值。有关示例,请参阅以下原始数据:
我希望转置的原始数据(但保持0,1,2,...索引完整并在最终转置的DataFrame中将“id”更改为“id2”)。
转置后的 DataFrame,请注意标题是索引值而不是“id”值(这是我期待和需要的)
逻辑流程
首先,这有助于摆脱作为标题放置的数字索引:How to stop Pandas adding time to column title after transposing a datetime index?
然后这有助于摆脱索引号作为标题,但现在“id”和“index”被改组:Reassigning index in pandas DataFrame& Reassigning index in pandas DataFrame
但是现在我的id和索引值由于某种原因被洗牌了。
如何解决此问题,以便列为[id2,600mpe,au565 ...]?
如何更有效地完成这项工作?
这是我的代码:
DF = pd.read_table(data,sep="\t",index_col = [0]).transpose() #Add index_col = [0] to not have index values as own row during transposition
m, n = DF.shape
DF.reset_index(drop=False, inplace=True)
DF.head()
答案 0 :(得分:4)
如果我理解你的例子,你似乎发生的事情是你transpose
获取你的实际索引(0 ... n序列作为列标题。首先,如果你想保留数字索引,您可以将其存储为id2
。
DF['id2'] = DF.index
现在,如果您希望id
成为列标题,则必须将其设置为索引,覆盖默认值:
DF.set_index('id',inplace=True)
DF.T
我没有复制您的数据,但这应该为您提供跨列id
的值。