3列分组依据

问题描述 投票:0回答:1

我想使用基于3列的groupby函数。第一栏有各家庭的姓氏信息,第二栏有该家庭的个体名称。第三栏有这些家庭中每个人都有的动物。我想获得有猫或狗的名字和姓氏的人以及这些人有多少猫或狗的信息。我的数据看起来像

Family  SubFamily  Animal

Smith    Karen     Cat

Smith    Karen     Cow

Smith    Karen     Dog

Jackson  Jason     Dog

我尝试过

merged_family.groupby(["Family","Animal","SubFamily"]).size().loc[:,'Cat'].loc[:,'Dog']

结果可能是

家庭亚家庭猫狗

史密斯·凯伦1 1

或类似的东西

没有用。你可以帮帮我吗?

python pandas
1个回答
0
投票

您的groupby即将完成,但是您可能缺少过滤器,因此动物只是猫和狗。

df_merged.query("Animal.isin(['Cat', 'Dog'])")
  .pivot_table(columns='Animal', index=['Family', 'SubFamily'], aggfunc='size')
  .fillna(0)
© www.soinside.com 2019 - 2024. All rights reserved.