pandas dataframe.groupby()基于两个条件[重复]

6yjfywim  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(115)

此问题在此处已有答案

How can I pivot a dataframe?(5个答案)
3天前关闭。
我有一个从2017-11和2023-01之间提取的论坛帖子的数据框架,包括成员加入的月份(期间),他们的年龄和二元分类器。数据看起来像这样:
| 周期|二进制目标|年龄|
| --------------|--------------|--------------|
| 2018年4月|0|二|
| 2018年4月|0|二|
| 2018年4月|1|四|
| 2018年4月|0|0|
| ……|……|……|
| 二○二二年八月|0|二十七|
| 二○二二年八月|0|十一|
| 二○二二年八月|1|1|
是否可以使用df.groupby()函数同时对period和age进行分组,以便计算每个period和age组合的binary_target = 1的比例?理想情况下,我会将结果存储在一个类似于以下内容的dataframe中:
| 时期(年龄)|1|二|三|四|五|六|七|八|九|……|
| --------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|
| 2017年11月|0.29|0.33|0.35|0.35|0.35|0.30|0.34|0.33|0.33|……|||||
| 2017年12月|0.31|0.29|0.34|0.35|0.38|0.32|0.29|零点三十六|0.32|……|
| 2018年1月|0.32|0.29|零点三十六|0.32|0.37|0.33|0.34|0.41|0.37|……|
| 2018年2月|0.30|0.34|0.33|0.33|0.40|0.31|0.31|0.29|0.34|……|
| 2018年3月|0.30|0.34|0.33|0.33|0.40|0.33|0.34|0.35|0.38|……|
| 2018年4月|0.31|0.29|0.34|0.35|0.38|0.31|0.29|0.34|0.39|……|
| ……|……|……|……|……|……|……|……|……|……|……|

k3bvogb1

k3bvogb11#

你需要一个数据透视表。

df.pivot_table(index='period', columns='age', values='binary_target', aggfunc='mean')

使用mean作为聚合函数将给予1与0的比例

相关问题