当您申请groupby数据框时,您不会获得行,而是获得数据框组。例如,考虑:
df
ID Date Days Volume/Day
0 111 2016-01-01 20 50
1 111 2016-02-01 25 40
2 111 2016-03-01 31 35
3 111 2016-04-01 30 30
4 111 2016-05-01 31 25
5 112 2016-01-01 31 55
6 112 2016-01-02 26 45
7 112 2016-01-03 31 40
8 112 2016-01-04 30 35
9 112 2016-01-05 31 30
Run Code Online (Sandbox Code Playgroud)
for i, g in df.groupby('ID'):
print(g, '\n')
ID Date Days Volume/Day
0 111 2016-01-01 20 50
1 111 2016-02-01 25 40
2 111 2016-03-01 31 35
3 111 2016-04-01 30 30
4 111 2016-05-01 31 25
ID Date Days Volume/Day
5 112 2016-01-01 31 55
6 112 2016-01-02 26 45
7 112 2016-01-03 31 40
8 112 2016-01-04 30 35
9 112 2016-01-05 31 30
Run Code Online (Sandbox Code Playgroud)
对于您的情况,您可能应该查看dfGroupby.apply,如果您想对您的组应用某些功能,dfGroupby.transform以生成类似索引的数据框(请参阅文档以获取解释),或者dfGroupby.agg,如果您想生成聚合结果。
你会做这样的事情:
r = df.groupby('Date').apply(your_function)
Run Code Online (Sandbox Code Playgroud)
您将函数定义为:
def your_function(df):
... # operation on df
return result
Run Code Online (Sandbox Code Playgroud)
如果您在实施中遇到问题,请打开一个新问题,发布您的数据和代码,以及任何相关的错误/回溯。快乐编码。