簡體   English   中英

計算熊貓組中的唯一值

[英]count unique values in groups pandas

我有一個這樣的數據框:

data = {'id': [1,1,1,2,2,3],
        'value': ['a','a','a','b','b','c'],
        'obj_id': [1,2,3,3,3,4]
}
df = pd.DataFrame (data, columns = ['id','value','obj_id'])

我想獲得obj_id groupby idvalue的唯一計數:

1 a 3
2 b 1
3 c 1

但是當我這樣做時:

result=df.groupby(['id','value'])['obj_id'].nunique().reset_index(name='obj_counts')

我得到的結果是:

1 a 2
1 a 1
2 b 1
3 c 1

所以具有相同idvalue的前兩行不會組合在一起。

我怎樣才能解決這個問題? 非常感謝!

對我來說,您的解決方案適用於示例數據。

就像在評論中提到的@YOBEN_S 可能是跟蹤 whitespeces 的問題,然后解決方案是添加Series.str.strip

data = {'id': [1,1,1,2,2,3],
        'value': ['a ','a','a','b','b','c'],
        'obj_id': [1,2,3,3,3,4]
}
df = pd.DataFrame (data, columns = ['id','value','obj_id'])

df['value'] = df['value'].str.strip()
df = df.groupby(['id','value'])['obj_id'].nunique().reset_index(name='obj_counts')
print (df)
   id value  obj_counts
0   1     a           3
1   2     b           1
2   3     c           1

暫無
暫無

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

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