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() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容