繁体   English   中英

Pandas,计算每个唯一值的行数

[英]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.

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