【发布时间】:2017-11-02 16:14:14
【问题描述】:
一个库给了我一个带有 MultiIndex 的 pandas 数据框。 结果如下:
xf.index
DatetimeIndex(['2011-03-31', '2011-04-01', '2011-04-04', '2011-04-05',
'2011-04-06', '2011-04-07', '2011-04-08', '2011-04-11',
'2011-04-12', '2011-04-13',
...
'2017-10-19', '2017-10-20', '2017-10-23', '2017-10-24',
'2017-10-25', '2017-10-26', '2017-10-27', '2017-10-30',
'2017-10-31', '2017-11-01'],
dtype='datetime64[ns]', name=u'date', length=1702, freq=None)
xf.columns
MultiIndex(levels=[[u'jan', u'feb', u'mar'], [u'PRICE', u'AMOUNT', u'NAME', u'STYLE']],
labels=[[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]])
基本思想是,对于 1 月、2 月、3 月,每天都会评估一些信息字段(价格、金额、名称、样式)。
我真的不擅长操纵这个多索引。
我需要做的事情:
修改现有的 2 级列。例如。将所有“名称”设为小写。
添加新列,例如“modified_name”。这将是
适用于所有 1 月、2 月和 3 月。
我不知道我是否应该尝试将整个列索引扁平化为一个级别(以便有一个列,'month',其值为 'jan'、'feb'、'mar ',然后是其他现有的 2 级列(价格、金额、名称、样式)。我不需要多索引。
如何将数据框折叠到其中?
或者有没有办法修改和增加层次索引下的列?
【问题讨论】: