如何堆叠两列
how to stack two columns
我有一个 df 是这样的:
C CF
NO FROMNODENO TONODENO
1 1 2 582.551074 0
2 1 809.018213 0
我想得到这个:
new value
NO FROMNODENO TONODENO new index
1 1 2 C 582.551074
2 1 C 809.018213
1 2 CF 0.000000
2 1 CF 0.000000
请注意,开头可能会有更多列,其中一些不应更改。怎么做?以及如何设置新索引的名称,其值来自堆栈索引的标签?
可以堆叠和取消堆叠。根据需要重命名列
df.stack().unstack(level=0).rename(columns={1:'new value'}).reset_index()
使用DataFrame.rename_axis
for rename last level with DataFrame.stack
, for one column DataFrame
use Series.to_frame
:
df = df.rename_axis('new index', axis=1).stack().to_frame('new value')
print (df)
new value
NO FROMNODENO TONODENO new index
1 1 2 C 582.551074
CF 0.000000
2 1 C 809.018213
CF 0.000000
我有一个 df 是这样的:
C CF
NO FROMNODENO TONODENO
1 1 2 582.551074 0
2 1 809.018213 0
我想得到这个:
new value
NO FROMNODENO TONODENO new index
1 1 2 C 582.551074
2 1 C 809.018213
1 2 CF 0.000000
2 1 CF 0.000000
请注意,开头可能会有更多列,其中一些不应更改。怎么做?以及如何设置新索引的名称,其值来自堆栈索引的标签?
可以堆叠和取消堆叠。根据需要重命名列
df.stack().unstack(level=0).rename(columns={1:'new value'}).reset_index()
使用DataFrame.rename_axis
for rename last level with DataFrame.stack
, for one column DataFrame
use Series.to_frame
:
df = df.rename_axis('new index', axis=1).stack().to_frame('new value')
print (df)
new value
NO FROMNODENO TONODENO new index
1 1 2 C 582.551074
CF 0.000000
2 1 C 809.018213
CF 0.000000