blu*_*ers 4 python dataframe pandas pandas-groupby
我有以下数据框
ID ID2 SCORE X Y
0 0 a 10 1 2
1 0 b 20 2 3
2 0 b 20 3 4
3 0 b 30 4 5
4 1 c 5 5 6
5 1 d 6 6 7
Run Code Online (Sandbox Code Playgroud)
我想做的是分组ID和ID2平均,SCORE只考虑UNIQUE得分。
现在,如果我使用标准,df.groupby(['ID', 'ID2'])['SCORE'].mean()我将得到23.33〜,我所寻找的是25分。
我知道我可以过滤出X并Y删除重复项,然后这样做,但是我想保留它们,因为它们是相关的。
我该如何实现?
如果我正确理解:
In [41]: df.groupby(['ID', 'ID2'])['SCORE'].agg(lambda x: x.unique().sum()/x.nunique())
Out[41]:
ID ID2
0 a 10
b 25
1 c 5
d 6
Name: SCORE, dtype: int64
Run Code Online (Sandbox Code Playgroud)
还是容易一些:
In [43]: df.groupby(['ID', 'ID2'])['SCORE'].agg(lambda x: x.unique().mean())
Out[43]:
ID ID2
0 a 10
b 25
1 c 5
d 6
Name: SCORE, dtype: int64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2491 次 |
| 最近记录: |