为了账号安全,请及时绑定邮箱和手机立即绑定

多指数熔断_枢轴

多指数熔断_枢轴

holdtom 2021-06-21 16:05:39
我很难找到一种方法来重塑多索引(列)df 两种方式:(a) 除了一列之外,多索引的两个级别都被熔化了(b) 每一个 0 级柱都熔化了 1 级柱我可能已经发现 (a) 尽管可能不是最程序化的方式并且可以接近但没有雪茄 (b)例如,给定 DataFrame:df = pd.DataFrame({'dealer': {0: 'SF', 1: 'LA'},                   'col2': {0: 1, 1: 3},                   'col3': {0: 2, 1: 4},                   'col4': {0: 3, 1: 6},                   'col5': {0: 7, 1: 2},                  })df.columns = [['Jan','Jan','Feb','Feb','dealer'], ['cars','trucks','cars','trucks','dealer']]Out[209]:    Jan         Feb        dealer  cars trucks cars trucks dealer0    1      2    3      7     SF1    3      4    6      2     LA我可以通过以下方式到达 (a):melted = df.melt(id_vars = 'dealer',col_level=0, var_name='month')melted['product']=df.melt(id_vars = 'dealer',col_level=1)['variable']melted.sort_values('dealer', inplace=True)meltedOut[211]:   dealer month  value product1     LA   Jan      3    cars3     LA   Jan      4  trucks5     LA   Feb      6    cars7     LA   Feb      2  trucks0     SF   Jan      1    cars2     SF   Jan      2  trucks4     SF   Feb      3    cars6     SF   Feb      7  trucks但似乎无法正确旋转以将 ['dealer','product','Jan','Feb'] 作为列标签,其中值在 Jan 和 Feb colspivotedd =  pd.DataFrame({'dealer': {0: 'LA', 1: 'LA',2: 'SF', 3: 'SF'},                   'product': {0: 'cars', 1: 'trucks',2: 'cars', 3: 'trucks'},                   'Jan': {0: 3, 1: 4,2:1,3:2},                   'Feb': {0: 6, 1: 2,2:3,3:7},                  })Out[215]:    Feb  Jan dealer product0    6    3     LA    cars1    2    4     LA  trucks2    3    1     SF    cars3    7    2     SF  trucks显然,我希望经销商和产品作为按时间顺序排列的第一列和日期(还没有阅读为什么 pd.dataframe 更改您输入数据的顺序),但这基本上是我所追求的。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

你可以试试:


df.set_index('dealer').stack(1).reset_index().rename(columns={'level_1':'product'})


  dealer  product  Feb  Jan

0  (SF,)    cars    3    1

1  (SF,)  trucks    7    2

2  (LA,)    cars    6    3

3  (LA,)  trucks    2    4


查看完整回答
反对 回复 2021-06-22
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信