首页 > 解决方案 > 熊猫计算组中唯一数字的平均数量

问题描述

我有一个数据集,其中包含 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。

标签: pythonpandaspandas-groupby

解决方案


IIUC,首先您要汇总每个ageand household

agg = (df.groupby(['age_group', 'household_key'])
         .agg({'DAY': 'nunique'})
      )

然后再次分组以获取平均值,例如,

agg.groupby('age_group').mean()

将为您提供age_group每个household_key.


推荐阅读