Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧和列名称与索引串联在一起_Python_Pandas - Fatal编程技术网

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

我对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 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
),因此迭代这些值可以将该行的索引元素作为元组返回。