Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对组中的唯一值进行计数_Python_Pandas_Group By - Fatal编程技术网

Python 对组中的唯一值进行计数

Python 对组中的唯一值进行计数,python,pandas,group-by,Python,Pandas,Group By,我有这样一个数据帧: 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_idgroupbyid和value的唯一计数: 1 a 3 2 b 1 3 c 1 但当我这样做的时候: result=df

我有这样一个数据帧:

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,追踪白种可能存在问题,那么解决方案是添加:


对我来说,你的解决方案很好,检查你的两个a,可能有白色空格哦,是的!谢谢你,你说得对!有空白。你的代码现在适合我了。非常感谢!
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