(请注意,this SO question外观相似但不同。)
我有一个MultiIndexed DataFrame
,其中的列代表年度数据:
>>> x = pd.DataFrame({
'country': {0: 4.0, 1: 8.0, 2: 12.0},
'series': {0: 553.0, 1: 553.0, 2: 553.0},
'2000': {0: '1100', 1: '28', 2: '120'},
'2005': {0: '730', 1: '24', 2: '100'}
}).set_index(['country', 'series'])
>>> x
2000 2005
country series
4 553 1100 730
8 553 28 24
12 553 120 100
当我堆叠年份时,新的索引级别没有名称:
>>> x.stack()
country series
4 553 2000 1100
2005 730
8 553 2000 28
2005 24
12 553 2000 120
2005 100
dtype: object
有没有一种很好的方式告诉我stack
我想要将新级别称为'year'
?它没有在the docs中提到这一点。
我总能做到:
>>> x.columns.name = 'year'
>>> x.stack()
但是,在我看来,这并不符合“非常好”的条件。任何人都可以一行吗?
答案 0 :(得分:1)
使用DataFrame.rename_axis
,有一种链接友好的方式可以在一行中进行(虽然不会更好):
x.rename_axis('year', axis=1).stack()