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

熊猫-如何平平列中的分级索引

熊猫-如何平平列中的分级索引

慕斯王 2019-07-02 15:50:00
熊猫-如何平平列中的分级索引我有一个数据框架,在轴1(列)中有一个层次索引(来自groupby.agg行动):     USAF   WBAN  year  month  day  s_PC  s_CL  s_CD  s_CNT  tempf                                            sum   sum   sum    sum   amax   amin0  702730  26451  1993      1    1     1     0    12     13  30.92  24.981  702730  26451  1993      1    2     0     0    13     13  32.00  24.982  702730  26451  1993      1    3     1    10     2     13  23.00   6.983  702730  26451  1993      1    4     1     0    12     13  10.04   3.924  702730  26451  1993      1    5     3     0    10     13  19.94  10.94我想把它压平,使它看起来像这样(名字不是关键的-我可以重命名):     USAF   WBAN  year  month  day  s_PC  s_CL  s_CD  s_CNT  tempf_amax  tmpf_amin   0  702730  26451  1993      1    1     1     0    12     13  30.92          24.981  702730  26451  1993      1    2     0     0    13     13  32.00          24.982  702730  26451  1993      1    3     1    10     2     13  23.00          6.983  702730  26451  1993      1    4     1     0    12     13  10.04          3.924  702730  26451  1993      1    5     3     0    10     13  19.94          10.94我该怎么做?(我试了很多次,但没有结果。)根据一项建议,这是以DICT的形式出现的头部。{('USAF', ''): {0: '702730',  1: '702730',  2: '702730',  3: '702730',  4: '702730'}, ('WBAN', ''): {0: '26451', 1: '26451', 2: '26451', 3: '26451', 4: '26451'}, ('day', ''): {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}, ('month', ''): {0: 1, 1: 1, 2: 1, 3: 1, 4: 1}, ('s_CD', 'sum'): {0: 12.0, 1: 13.0, 2: 2.0, 3: 12.0, 4: 10.0}, ('s_CL', 'sum'): {0: 0.0, 1: 0.0, 2: 10.0, 3: 0.0, 4: 0.0}, ('s_CNT', 'sum'): {0: 13.0, 1: 13.0, 2: 13.0, 3: 13.0, 4: 13.0}, ('s_PC', 'sum'): {0: 1.0, 1: 0.0, 2: 1.0, 3: 1.0, 4: 3.0}, ('tempf', 'amax'): {0: 30.920000000000002,  1: 32.0,  2: 23.0,  3: 10.039999999999999,  4: 19.939999999999998}, ('tempf', 'amin'): {0: 24.98,  1: 24.98,  2: 6.9799999999999969,  3: 3.9199999999999982,  4: 10.940000000000001}, ('year', ''): {0: 1993, 1: 1993, 2: 1993, 3: 1993, 4: 1993}}
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我认为最简单的方法是将列设置为顶层:

df.columns = df.columns.get_level_values(0)

注意:如果to级别有一个名称,您也可以通过它访问它,而不是0。

.

如果你想合并/join你的多重索引变成一个索引(假设列中只有字符串项)你可以:

df.columns = [' '.join(col).strip() for col in df.columns.values]

注:我们必须strip当没有第二个索引时的空格。

In [11]: [' '.join(col).strip() for col in df.columns.values]Out[11]: ['USAF',
 'WBAN',
 'day',
 'month',
 's_CD sum',
 's_CL sum',
 's_CNT sum',
 's_PC sum',
 'tempf amax',
 'tempf amin',
 'year']


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 545 浏览
慕课专栏
更多

添加回答

举报

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