Python Pandas,groupby()和sum()值没有列值

时间:2015-12-17 23:03:58

标签: python pandas

我有关于计算Pandas Dataframe中项目的问题

我有一个Python数据帧df,它列出了每天的事件

Date           Week        Eventdetails
01-09-2011    01-07-2011     ....
01-10-2011    01-07-2011     ....
01-11-2011    01-07-2011     ....
01-12-2011    01-07-2011     ....
01-12-2011    01-07-2011     ....
01-15-2011    01-14-2011     ....

我没有在列中总结任何值;我只是尝试“周”发生的次数,例如以上是01-07-2011周的5个活动。

我应该以某种方式使用df.grouby("Week"),但我如何总结?

2 个答案:

答案 0 :(得分:1)

你正在寻找大小而不是总和:

In [11]: df.groupby("Week").size()
Out[11]:
Week
01-07-2011    5
01-14-2011    1
dtype: int64

如果Date是索引/ DatetimeIndex,您可以重新采样:

In [21]: df1
Out[21]:
                  Week Eventdetails
Date
2011-01-09  01-07-2011         ....
2011-01-10  01-07-2011         ....
2011-01-11  01-07-2011         ....
2011-01-12  01-07-2011         ....
2011-01-12  01-07-2011         ....
2011-01-15  01-14-2011         ....

In [22]: df1.resample("W", how="size")
Out[22]:
Date
2011-01-09    1
2011-01-16    5
Freq: W-SUN, dtype: int64

答案 1 :(得分:0)

  

我应该以某种方式使用df.groupby('Week').sum() ,但我如何总结?

.count()

虽然根据您的预期输出我相信您想使用_db.allDocs({ include_docs: true, startkey: 'event', endkey: 'event\uffff' }).then(function(response){ filtered = _.filter(response['rows'], function(row){ return row['doc']['project_id'] == 'project/1' }); result = filtered.map(function(row){ return row['doc'] }) });