Python 熊猫的分组日期索引

Python 熊猫的分组日期索引,python,pandas,Python,Pandas,我有一个如下所示的数据帧: In [101]: import pandas as pd df = pd.DataFrame( {'date':['2014-06-30','2014-06-30','2014-06-29','2014-06-29','2014-06-29'], 'value':[1,2,5,5,4]}) df.set_index('date') Out[101]: value date 2014-06-30 1 2014-06-30 2 20

我有一个如下所示的数据帧:

   In [101]:

import pandas as pd
df = pd.DataFrame( {'date':['2014-06-30','2014-06-30','2014-06-29','2014-06-29','2014-06-29'], 'value':[1,2,5,5,4]})
df.set_index('date')
Out[101]:
         value
date    
2014-06-30  1
2014-06-30  2
2014-06-29  5
2014-06-29  5
2014-06-29  4
df
Out[102]:
           value
date    
2014-06-30  1
            2
2014-06-29  5
            5
            4
2014-06-30      1
                2
在这里,我想根据日期值对索引列进行分组。所需的输出应如下所示:

   In [101]:

import pandas as pd
df = pd.DataFrame( {'date':['2014-06-30','2014-06-30','2014-06-29','2014-06-29','2014-06-29'], 'value':[1,2,5,5,4]})
df.set_index('date')
Out[101]:
         value
date    
2014-06-30  1
2014-06-30  2
2014-06-29  5
2014-06-29  5
2014-06-29  4
df
Out[102]:
           value
date    
2014-06-30  1
            2
2014-06-29  5
            5
            4
2014-06-30      1
                2
因此,如果我使用df.iloc[0],输出应该是这样的:

   In [101]:

import pandas as pd
df = pd.DataFrame( {'date':['2014-06-30','2014-06-30','2014-06-29','2014-06-29','2014-06-29'], 'value':[1,2,5,5,4]})
df.set_index('date')
Out[101]:
         value
date    
2014-06-30  1
2014-06-30  2
2014-06-29  5
2014-06-29  5
2014-06-29  4
df
Out[102]:
           value
date    
2014-06-30  1
            2
2014-06-29  5
            5
            4
2014-06-30      1
                2
df.设置索引(“日期”)
需要分配给
df
,您可以使用
.loc

df = pd.DataFrame( {'date':['2014-06-30','2014-06-30','2014-06-29','2014-06-29','2014-06-29'], 'value':[1,2,5,5,4]})
df = df.set_index('date')
df

            value
date
2014-06-30      1
2014-06-30      2
2014-06-29      5
2014-06-29      5
2014-06-29      4
df.loc['2014-06-30']

            value
date
2014-06-30      1
2014-06-30      2
使用
.loc

df = pd.DataFrame( {'date':['2014-06-30','2014-06-30','2014-06-29','2014-06-29','2014-06-29'], 'value':[1,2,5,5,4]})
df = df.set_index('date')
df

            value
date
2014-06-30      1
2014-06-30      2
2014-06-29      5
2014-06-29      5
2014-06-29      4
df.loc['2014-06-30']

            value
date
2014-06-30      1
2014-06-30      2

如何根据日期值对索引进行分组?您可以
df.groupby(level=0)
但是为什么要
df.set\u index('date')
?在设置数据帧的索引之前,您可以设置df.groupby('date')?但是,如果您希望使用每日/每月聚合功能,最好使用
重采样
时间分组
!是的,我想使用df.groupby,但它将返回
groupby对象
。如何使用
groupby
,而不使用
sum
mean
等函数并返回数据帧。我使用了
resample
,但它还需要
sum
mean
等函数,所以您想说:“给我与前30个日期相关的所有行”。您可以使用groupby方法进行此操作。所以你去了
gb=df.groupby(“日期”)
。然后
gb.groups.keys()[:29]
获取前30个日期。然后,您可以将其用作索引,这样就可以转到
df.loc[gb.groups.keys()[:29]]