GroupBy使时间索引消失

时间:2016-01-11 20:12:24

标签: python pandas time-series

使用此DataFrame:

import pandas as pd
df = pd.DataFrame([[1,1],[1,2],[1,3],[1,5],[1,7],[1,9]], index=pd.date_range('2015-01-01', periods=6), columns=['a', 'b'])

            a  b
2015-01-01  1  1
2015-01-02  1  2
2015-01-03  1  3
2015-01-04  1  5
2015-01-05  1  7
2015-01-06  1  9

使用df = df.groupby(df.b // 4).last() 这一事实会使日期时间索引消失。为什么?

   a  b
b      
0  1  3
1  1  7
2  1  9

预期结果:

            a  b
2015-01-03  1  3
2015-01-05  1  7
2015-01-06  1  9        

1 个答案:

答案 0 :(得分:2)

对于groupby您的索引始终从分组值中获取。对于您的情况,您可以使用reset_index然后使用set_index

df['c'] = df.b // 4
result = df.reset_index().groupby('c').last().set_index('index')

In [349]: result
Out[349]: 
            a  b
index           
2015-01-03  1  3
2015-01-05  1  7
2015-01-06  1  9