python - 熊猫计算组中唯一数字的平均数量
问题描述
我有一个数据集,其中包含 home_key、age_group、income_group 和 day 列。对于每个家庭,该家庭购物的每一天都有一行。我想知道每个年龄组在研究期间平均有多少天去购物。我尝试按年龄组分组并计算唯一日期的数量,但我想获得每个组中每个家庭的唯一日期,而不仅仅是每个组中的唯一日期,然后我想要平均值和标准差之类的东西。我试过了:
df.groupby('age_group', as_index=False).agg({'DAY': 'nunique'})
但这忽略了住户,我也试过:
df.groupby(['age_group', 'household_key'], as_index=False).agg({'DAY': 'nunique'})
但这让我每个家庭一组(每个家庭属于一个年龄组)。然后我不知道如何按年龄组获取信息。我想做某种多层次的小组,但我不知道怎么做。我在 Python 3 中使用 Pandas。
解决方案
IIUC,首先您要汇总每个age
and household
:
agg = (df.groupby(['age_group', 'household_key'])
.agg({'DAY': 'nunique'})
)
然后再次分组以获取平均值,例如,
agg.groupby('age_group').mean()
将为您提供age_group
每个household_key
.
推荐阅读
- javascript - 如何隐藏mysql数据中的条形图而不被删除
- ubuntu - 从 ubuntu 中的文件中删除空格
- r - 使用 facet_grid_sc 产生不同比例的问题
- node.js - 为什么我在 Ubuntu 18.04.4 LTS 上运行 Puppeteer 时出错?
- python - Protocol Buffers 重复字段
- angular - x 秒后自动关闭 Angular 对话框
- sql - 每年的事件 ID
- java - 具有默认命名空间且没有前缀的 xpath
- ruby-on-rails - 如何通过 Rails 中的关系累积通过“has_many”互连的所有 Active Record 对象的数组
- image - 将图片变成黑色或白色。如何?