簡體   English   中英

如何在pandas中按每組兩列計算唯一記錄?

[英]How to count unique records by two columns per group in pandas?

如何通過pandas中的兩列計算唯一記錄相同 ,僅限每組。 我試過了:

df = pd.DataFrame({'a': [1,1,1,2,2], 'b':[10,10,20,30,30], 'c':[5,7,7,11,17]})
df.groupby('a').groupby(['b', 'c']).ngroups

它會拋出AttributeError

你不需要double groupby:使用帶有['b', 'c'] drop_duplicates作為你的子集,只保留唯一的行,然后groupby'a 'a'並使用size

df.drop_duplicates(['b', 'c']).groupby('a').size()

a
1    3
2    2
dtype: int64

您需要將函數應用於第一次灌漿的結果:

df.groupby('a').apply(lambda x: x.groupby(['b', 'c']).ngroups)
#a
#1    3
#2    2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM