Python 将数据帧和列名称与索引串联在一起
我对Pandas/Python中的这种特定格式有问题。 我的数据框看起来像这样Python 将数据帧和列名称与索引串联在一起,python,pandas,Python,Pandas,我对Pandas/Python中的这种特定格式有问题。 我的数据框看起来像这样 Id Predicted 1_1 0 1_2 0 1_3 0 1_4 0 1_5 0 1_6 0 1_7 0 1_8 0 1_9 0 2_1 0 2_2 0 2_3 0 2_4 0 2_5 0 2_6 0 2_8 0 2_9 0 所需的输出如下所示 Id Predicted 1_1 0 1_2 0 1_3 0 1_4 0 1_5 0 1_6 0 1_7 0 1_8 0 1_9 0 2_1 0 2_2 0 2_3
Id Predicted
1_1 0
1_2 0
1_3 0
1_4 0
1_5 0
1_6 0
1_7 0
1_8 0
1_9 0
2_1 0
2_2 0
2_3 0
2_4 0
2_5 0
2_6 0
2_8 0
2_9 0
所需的输出如下所示
Id Predicted
1_1 0
1_2 0
1_3 0
1_4 0
1_5 0
1_6 0
1_7 0
1_8 0
1_9 0
2_1 0
2_2 0
2_3 0
2_4 0
2_5 0
2_6 0
2_8 0
2_9 0
其中,Id由索引和连接的列名组成,预测值是针对DataFrame中的该特定坐标的预测值
1_1 索引1第1列、1_2索引1、第2列等
我想将输出写入csv,但不知道如何迭代数据帧以获得此形状。首先,可以使用以下方法重塑数据帧: 这将为您提供一个具有多索引的系列(两个索引级别,来自原始索引和列名)。然后,您可以按如下方式重新格式化此多索引:
In [33]: df2.index = [str(i) + '_'+ str(j) for i, j in df2.index]
In [34]: df2
Out[34]:
0_0 -1.138655
0_1 -1.633784
0_2 0.328994
1_0 -0.952137
1_1 1.012359
1_2 1.327618
2_0 -1.318940
2_1 1.191259
2_2 0.133112
dtype: float64
请注意,我在这里包含了一个
。
,因为我的示例数据框列名还没有这个名称。Super,这正是我所需要的:)谢谢jorisCool@joris谢谢你的精彩回答。你能解释一下这是怎么回事吗?在第二步之前检查df2.index
,我看到它有两个属性,一个是.levels
,另一个是.labels
。我现在知道级别是df.index.value
。但是,labels属性显示df.columns.values
的位置。我不知道为什么列表理解正确。我的意思是,j
如何映射到df.columns.values[j]
?感谢df.index.values
返回元组(因此这不同于df.index.levels
),因此迭代这些值可以将该行的索引元素作为元组返回。