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

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

我有一个数据框架,在轴1(列)中有一个层次索引(来自groupby.agg行动):


     USAF   WBAN  year  month  day  s_PC  s_CL  s_CD  s_CNT  tempf       

                                     sum   sum   sum    sum   amax   amin

0  702730  26451  1993      1    1     1     0    12     13  30.92  24.98

1  702730  26451  1993      1    2     0     0    13     13  32.00  24.98

2  702730  26451  1993      1    3     1    10     2     13  23.00   6.98

3  702730  26451  1993      1    4     1     0    12     13  10.04   3.92

4  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.98

1  702730  26451  1993      1    2     0     0    13     13  32.00          24.98

2  702730  26451  1993      1    3     1    10     2     13  23.00          6.98

3  702730  26451  1993      1    4     1     0    12     13  10.04          3.92

4  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}}


慕斯王
浏览 546回答 3
3回答

慕雪6442864

我认为最简单的方法是将列设置为顶层: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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python