Ann*_*ere 2 python loops unique pandas
我有一个看起来像这样的数据框:(处理有多个可能的字符变量,我只是简化了问题)
ID Position Treatment
--20AxECvv- 0 A
--20AxECvv- -1 A
--20AxECvv- -2 A
--h9INKewQf- 0 A
--h9INKewQf- -1 B
zZU7a@8jN 0 B
QUeSNEXmdB 0 C
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
Run Code Online (Sandbox Code Playgroud)
我只想保留身份证与exclusif治疗,换句话说保持身份证,只有一次治疗,即使是几次.之后,我想总结每次治疗的ID数量.结果将是:
ID Position Treatment
--20AxECvv- 0 A
--20AxECvv- -1 A
--20AxECvv- -2 A
zZU7a@8jN 0 B
QUeSNEXmdB 0 C
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
Run Code Online (Sandbox Code Playgroud)
总和:
A : 1
B : 1
C : 2
Run Code Online (Sandbox Code Playgroud)
我有任何ida如何解决这个问题,也许在循环中循环,但我是Python /熊猫的初学者谢谢
您可以分组ID并根据唯一行的条件数== 1过滤行
df1 = df.loc[df.groupby('ID').Treatment.filter(lambda x: x.nunique()==1).index]
Run Code Online (Sandbox Code Playgroud)
或者@Igor Raush建议,
df1 = df.groupby('ID').filter(lambda g: g.Treatment.nunique() == 1)
ID Position Treatment
0 --20AxECvv- 0 A
1 --20AxECvv- -1 A
2 --20AxECvv- -2 A
5 zZU7a@8jN 0 B
6 QUeSNEXmdB 0 C
7 QUeSNEXmdB -1 C
8 qu72Ql@h79 0 C
Run Code Online (Sandbox Code Playgroud)
并获得独特的数量
df1.groupby('Treatment').ID.nunique()
Treatment
A 1
B 1
C 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |