pandas 绘制二元结果变量随时间变化的散点图

wfveoks0  于 2023-03-11  发布在  其他
关注(0)|答案(1)|浏览(117)

我有一个很大的数据框,其中包含如下所示的已提取论坛帖子
| 用户名|线程名称||后文本|邮寄时间||加入日期|二进制目标|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 切盒机|我们做的时候没关系。||...|2022年8月9日19时39分||二〇二二年五月二十六日|1个|
| 文件夹_33|我们做的时候没关系。||...|2022年8月9日19时54分||2022年6月10日|1个|
| 赫尔默乌|我们做的时候没关系。||...|2022年8月9日19时58分||二〇二一年十月七日|无|
我已经在post_text列上运行了一个二进制分类器,在binary_target列中给出了1或0的示例。(time_of_post),分类为1的帖子的数量。然而,由于每天的帖子的总数变化,我想首先计算每个日期的1总数占每个日期的帖子总数的百分比。
我想要的输出将是一个散点图,x轴为日期,y轴为“1的示例占总帖子的百分比”。
我可以使用以下方法轻松获得二进制目标的值计数:

df_combined.groupby('date_joined')['binary_target'].value_counts()

尽管我很难用百分比来计算它们。

4sup72z8

4sup72z81#

你可以通过取每个日期的观测值之和,然后除以每个日期的观测值总数来得到1的个数。你可以使用groupbyagg来得到这两个值。

df_agg = df_combined.groupby('date_joined')['binary_target'].agg(['sum', 'count'])
print(df_agg)

从那里你可以创建一个新的列来计算每个日期1的比例。

df_agg['prop'] = df_agg['sum'] / df_agg['count']
print(df_agg)

相关问题