遍历 Pandas Dataframe 中的日期以获取每周不同列的计数

Iterate over dates in a Pandas Dataframe to get the count of a different column per week

我是一名 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 loops' 的语法,它只迭代索引。基本上我需要一个看起来像这样的结果数据框。值字段包含 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 week 并汇总 size:

#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