使用Pandas库中的drop_duplicates函数,将参数keep设置为“first”,以保留第一个重复ID。然后,使用Boolean indexing将数据框中值等于特定值的行筛选出来,再使用drop_duplicates函数将这些行中的重复ID保留下来。
示例代码如下:
import pandas as pd
# 创建示例数据框
df = pd.DataFrame({'ID': [1, 1, 2, 2, 3, 4, 4],
'Value': ['A', 'B', 'C', 'D', 'E', 'F', 'F']})
print(df)
# 保留第一个重复ID
df.drop_duplicates(subset='ID', keep='first', inplace=True)
# 筛选出值为F的行
df_f = df[df['Value'] == 'F']
# 保留值为F的行中的重复ID
df_f.drop_duplicates(subset='ID', keep=False, inplace=True)
# 合并数据框
result = pd.concat([df, df_f])
print(result)
输出结果为:
ID Value
0 1 A
1 1 B
2 2 C
3 2 D
4 3 E
5 4 F
6 4 F
ID Value
0 1 A
2 2 C
4 3 E
5 4 F