如果df
是由Dataframe
个对象编制索引的DateTime
,则以下代码会将其拆分为列表groups_list
,其中每个索引都包含df
中的所有数据那属于某一天:
groupby_clause = [df.index.year,df.index.month,df.index.day]
groups_list = [group[1] for group in df.groupby(groupby_clause)]
我很难理解分组是如何实现的,因为我不需要将groupby_clause
的元素标记为年份,月份和日期,以便进行分组在DateTime
个对象上。
例如,我有groups_list
的以下组件:
也许我错过了一些明显的东西,但我不明白:大熊猫如何知道它应该groupby_clause[0]
与年,groupby_clause[1]
和月{{{}相关联1}}到一天,以便对具有groupby_clause[2]
类型的数据框索引进行分组?
答案 0 :(得分:0)
假设你有一个像这样的DataFrame:
0
2011-01-01 00:00:00 -0.324398
2011-01-01 01:00:00 -0.761585
2011-01-01 02:00:00 0.057204
2011-01-01 03:00:00 -1.162510
2011-01-01 04:00:00 -0.680896
2011-01-01 05:00:00 -0.701835
2011-01-01 06:00:00 -0.431338
2011-01-01 07:00:00 0.306935
2011-01-01 08:00:00 -0.503177
2011-01-01 09:00:00 -0.507444
2011-01-01 10:00:00 0.230590
2011-01-01 11:00:00 -2.326702
2011-01-01 12:00:00 -0.034664
2011-01-01 13:00:00 0.224373
2011-01-01 14:00:00 -0.242884
如果您希望索引按年份和日期,那么只需set_index
:
df.set_index([ts.index.year, ts.index.month, ts.index.day])
0
2011 1 1 -0.324398
1 -0.761585
1 0.057204
1 -1.162510
1 -0.680896
1 -0.701835
1 -0.431338
1 0.306935
1 -0.503177
1 -0.507444
1 0.230590
1 -2.326702
1 -0.034664
1 0.224373
1 -0.242884
1 -0.134757
1 -1.177362
1 0.931335
1 0.904084
1 -0.757860
1 0.406597
1 -0.664150