Pandas 熊猫:将单个索引从层次索引转换为系列索引,以允许对索引值进行计算

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'):

有没有办法将单个索引(从层次索引)转换为一个系列

用例:按年和月分组(因此,年和月形成层次索引),然后通过组合年和月(或执行一些需要序列而不是索引的其他操作)创建新列

我知道我可以使用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'): 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