我是一名 Java 开发人员,发现切换到 Python 和 Pandas 有点棘手。我试图迭代 Pandas Dataframe 的日期,如下所示,
sender_user_id created
0 1 2016-12-19 07:36:07.816676
1 33 2016-12-19 07:56:07.816676
2 1 2016-12-19 08:14:07.816676
3 15 2016-12-19 08:34:07.816676
我想要获取的是一个数据框,它可以统计每周发生的交易总数。从论坛中,我已经能够获得仅迭代索引的“for 循环”语法。基本上我需要一个如下所示的结果数据框。 value 字段包含 sender_user_id 的计数,并且需要修改日期以显示每周的开始日期。
date value
0 2016-12-09 20
1 2016-12-16 36
2 2016-12-23 56
3 2016-12-30 32
预先感谢您的帮助。
最佳答案
我认为你需要resample
按周
和聚合大小
:
#cast to datetime if necessary
df.created = pd.to_datetime(df.created)
print (df.resample('W', on='created').size().reset_index(name='value'))
created value
0 2016-12-25 4
如果需要另一个offsets :
df.created = pd.to_datetime(df.created)
print (df.resample('W-FRI', on='created').size().reset_index(name='value'))
created value
0 2016-12-23 4
如果需要每周汇总的唯一值数量 nunique
:
df.created = pd.to_datetime(df.created)
print (df.resample('W-FRI', on='created')['sender_user_id'].nunique()
.reset_index(name='value'))
created value
0 2016-12-23 3
关于python - 迭代 Pandas Dataframe 中的日期以获取每周不同列的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41394924/