微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

(请注意,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

有没有一种很好的方式告诉堆栈我想将新级别称为’年’?它在the docs没有提到这一点.

我总是这样做:

>>> x.columns.name = 'year'
>>> x.stack()

但是,在我看来,这并不符合“非常好”的条件.任何人都可以在一行中做到吗?

解决方法:

使用DataFrame.rename_axis有一种链接友好的方式可以在一行中进行(尽管通常不会更好):

x.rename_axis('year', axis=1).stack()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐