我有两个 Dataframe ,一个是给定日期的分数,
date score
2022-12-01 0.28
2022-12-01 0.12
2022-12-01 0.36
2022-12-01 0.42
2022-12-01 0.33
2022-12-02 0.15
2022-12-03 0.23
2022-12-03 0.25
另一个日期框是得分箱,
breakpoints
0.1
0.2
0.3
0.4
0.5
断点0.1
表示任何小于或等于0.1的值。如何创建一个 Dataframe ,按日期对具有此已知bin的数据进行分组?我尝试使用聚合函数工作良好的numpy.histogram
,但不知道如何按日期对其进行分组。我的预期输出如下所示:
breakpoints 2022-12-01 2022-12-02 2022-12-03 ...
0.1 0 0 0
0.2 1 1 0
0.3 1 0 2
0.4 2 0 0
... ... ... ...
型
2条答案
按热度按时间but5z9lq1#
可以使用panda.cut()函数按日期对数据进行绑定。
df['binned'] = pd.cut(df['score'], bins=breakpoints, include_lowest=True)
然后使用groupby函数按日期和仓位分组:
df.groupby(['date','binned']).count()
这将为您提供每个时间段中的得分数。
tp5buhyn2#
**step1)**为以下步骤创建新列:
**step2)**执行group by并重命名聚合列:
**step3)**使用透视函数并替换None值:
型
最后的结果看起来像这样: