[英]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 id
和value
的唯一計數:
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
所以具有相同id
和value
的前兩行不會組合在一起。
我怎樣才能解決這個問題? 非常感謝!
對我來說,您的解決方案適用於示例數據。
就像在評論中提到的@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.