在 Pandas 中转置 DataFrame 时保留索引列

4
问题在于,当我转置DataFrame时,转置后的DataFrame的列名变成了索引的数字值,而不是"id"列中的值。请参见下面的原始数据示例: 我想要转置的原始数据(但保留0、1、2等索引并在最终转置的DataFrame中将"id"更改为"id2")。 enter image description here 我转置后的DataFrame,注意到列名是索引值,而不是" id "值(这是我期望和需要的) enter image description here 逻辑流程

首先,这有助于消除数值索引作为标题的问题:如何在转置日期时间索引后停止Pandas添加时间到列标题?

然后,这有助于消除索引数字作为标题的问题,但现在"id"和"index"被混淆了:Pandas DataFrame重新分配索引 & Pandas DataFrame重新分配索引

enter image description here

但现在我的id和index值因某种原因被混淆了。

我该如何修复,使列变为[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()

这并没有太大帮助:使用pandas为DataFrame添加索引列

1个回答

7

如果我理解您的示例,您似乎是这样做的:transpose 将您的实际索引(0...n序列)作为列标题。首先,如果您想保留数值索引,则可以将其存储为id2

DF['id2'] = DF.index

现在,如果您希望id成为列标题,则必须将其设置为索引,覆盖默认索引:
DF.set_index('id',inplace=True)
DF.T

我没有你的数据可供复制,但这应该可以让你看到每列id的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接