繁体   English   中英

Pandas groupby 2 coluns/conditions 然后 value_counts() 由另一列?

[英]Pandas groupby 2 coluns/conditions then value_counts() by another column?

这是我正在处理的数据集的样子:

类型 子类型 直辖市
社交媒体 Facebook 新城堡
在地上 校园 梦露
在地上 咖啡店 库特尔斯基
社交媒体 Instagram的 新城堡
社交媒体 抖音 圣安地列斯
社交媒体 Facebook 新城堡
社交媒体 Facebook 圣安地列斯

我想按TypeSubType对它进行分组,然后按Municipality进一步过滤它,然后value_counts()它。

这是我尝试过的:

ab = df.groupby([df['Type'] == 'Social Media', 
                     df['SubType']])
ab['Municipality'].value_counts()

我几乎得到了我想要的,只是它显示了所有内容,而不仅仅是条件的结果(在“类型”列下,它有“真”和“假”部分。

这是我正在寻找的结果:

类型 子类型 直辖市
社交媒体 Facebook 新城堡 2个
圣安地列斯 1个
Instagram的 新城堡 1个
抖音 圣安地列斯 1个

但相反,这是我的结果:

类型 子类型 直辖市
真的 Facebook 新城堡 2个
圣安地列斯 1个
Instagram的 新城堡 1个
铁角 圣安地列斯 1个
错误的 在地上 咖啡店 1个
校园 1个
等等... .... .... ...

只需先过滤并仅按子类型分组。 df.query('Type == `Social Media`').groupby('SubType')['Municipality'].value_counts()

我认为 value_counts 是你要找的

df.value_counts(['Type','SubType','Municipality'])
Out[169]: 
Type          SubType    Municipality
Social Media  Facebook   New Castle      2
Onground      Cafe       Kutlski         1
              Campus     Monroe          1
Social Media  Facebook   San Andreas     1
              Instagram  New Castle      1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM