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