加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:47:27 所属栏目:Python 来源:网络整理
导读:(请注意,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': {
(请注意,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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读