DataFrame.stack() 之后的新索引级别名称

Lon*_*Rob 6 python pandas

(请注意,这个 SO 问题看起来相似但不同。)

我有一个 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
Run Code Online (Sandbox Code Playgroud)

当我堆叠年份时,新的索引级别没有名称:

>>> x.stack()
country  series      
4        553     2000    1100
                 2005     730
8        553     2000      28
                 2005      24
12       553     2000     120
                 2005     100
dtype: object
Run Code Online (Sandbox Code Playgroud)

有什么好方法可以告诉stack我想要调用新级别'year'吗?它在docs中没有提到这一点。

我总能做到:

>>> x.columns.name = 'year'
>>> x.stack()
Run Code Online (Sandbox Code Playgroud)

但是,在我看来,这并不算是非常“好”。任何人都可以在一行中完成吗?

mcw*_*itt 6

有一种链接友好的方法可以使用以下命令在一行中完成此操作(尽管无可否认不是更好)DataFrame.rename_axis

x.rename_axis('year', axis=1).stack()
Run Code Online (Sandbox Code Playgroud)