[英]Pandas, count rows per unique value
我有一个 pandas dataframe 这样的:
c1 c2
0 A red
1 B blue
2 B blue
3 C red
4 C red
5 C blue
6 D blue
我想要做的就是找出每个 c1 中的所有值有多少个红色/蓝色值。 像这样:
red blue
A 1 0
B 0 2
C 2 1
D 0 1
我尝试使用 masks 和 groupby() 但没有找到解决方案。 主要原因是我不允许使用循环。 感觉有一个明显的解决方案,但我不太擅长使用 pandas:/有什么建议吗?
带有value_counts
的简单groupby
。
df.groupby('c1')['c2'].value_counts().unstack(fill_value=0)
或者,groupby 与组的大小...
df.groupby(['c1','c2']).size()
Output:
c1 c2
A red 1
B blue 2
C blue 1
red 2
D blue 1
dtype: int64
它并不完全如您所愿,但为您提供了重要信息。 你说“像这样的东西”......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.