python - 当相同 id 的状态发生变化时删除重复值
问题描述
我想删除规则显示 NOT_OK 的行,而对于一个值,它对于同一个 ID 已经确定。
而对于一个 id,如果所有值都是 NOT_OK,则保留所有值。
例如,对于这个数据集:
ID RULE
1 OK
1 NOT_OK
2 NOT_OK
2 NOT_OK
期望的输出:
ID RULE
1 OK
2 NOT_OK
2 NOT_OK
解决方案
假设您的数据集是变量“df”中的数据框。可能有一种更有效的方法,但这有效:
ok_records = list(df['ID'][df['RULE'] == 'OK'])
df1 = df[(df['ID'].isin(ok_records)) & (df['RULE'] != 'NOT_OK')]
df2 = df[(df['RULE'] == 'NOT_OK') & (~df['ID'].isin(ok_records))]
final_df = pd.concat([df1, df2])
推荐阅读
- python - 使用python将webm转换为mp3?
- r - 我如何告诉 R 在表输出中只给我大于 1 的值(即有多个项)?
- python-3.x - ImageDataGenerator中batch_size的作用
- django - Django表单,通过表单中的字段显示
- assembly - 如何编写一系列 MIPS 指令以将 X 处的浮点数除以 (-4),而不使用任何浮点指令。
- javascript - 如何将视频和画布流发送到使用 RTCPeerConnection 连接的远程客户端?
- r - 如何对齐字符上的一组字符串,每边有给定数量的字符(用“x”替换缺失的字符)?
- mysql - MySQL 将四个表(相关)组合成一个新表,以便我可以导出到 CSV
- r - R中的数据框名称是重复的
- ios - 图片未显示在表格单元格中