Pandas 熊猫:将单个索引从层次索引转换为系列索引,以允许对索引值进行计算
有没有办法将单个索引(从层次索引)转换为一个系列 用例:按年和月分组(因此,年和月形成层次索引),然后通过组合年和月(或执行一些需要序列而不是索引的其他操作)创建新列 我知道我可以使用reset_index(),但有更好的方法吗?IIUC您可以使用和: IIUC您可以使用和:Pandas 熊猫:将单个索引从层次索引转换为系列索引,以允许对索引值进行计算,pandas,Pandas,有没有办法将单个索引(从层次索引)转换为一个系列 用例:按年和月分组(因此,年和月形成层次索引),然后通过组合年和月(或执行一些需要序列而不是索引的其他操作)创建新列 我知道我可以使用reset_index(),但有更好的方法吗?IIUC您可以使用和: IIUC您可以使用和: daily = pd.DataFrame({'Low': {pd.Timestamp('2000-01-01 00:00:00'): 14.15, pd.Timestamp('2000-02-01 00:00:00'):
daily = pd.DataFrame({'Low': {pd.Timestamp('2000-01-01 00:00:00'): 14.15, pd.Timestamp('2000-02-01 00:00:00'): 13.9, pd.Timestamp('2016-02-01 00:00:00'): 19.140000000000001, pd.Timestamp('2016-01-01 00:00:00'): 23.620000000000001}})
df = daily.groupby([daily.index.year, daily.index.month]).first()
print df
Low
2000 1 14.15
2 13.90
2016 1 23.62
2 19.14
print df.index
MultiIndex(levels=[[2000, 2016], [1, 2]],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]])
print df.index.get_level_values(0)
Int64Index([2000, 2000, 2016, 2016], dtype='int64')
print df.index.get_level_values(1)
Int64Index([1, 2, 1, 2], dtype='int64')
print df.index.get_level_values(0).to_series()
2000 2000
2000 2000
2016 2016
2016 2016
dtype: int64
df['month'] = df.index.get_level_values(1)
print df[['Low','month']]
Low month
2000 1 14.15 1
2 13.90 2
2016 1 23.62 1
2 19.14 2