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]]