簡體   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