可以使用 pandas 库的 drop_duplicates 方法解决此问题。可以指定要保留的列和如何处理重复行。
示例代码:
import pandas as pd
df = pd.DataFrame({'group': ['A', 'A', 'B', 'B'], 'col1': [1, 2, 3, 4], 'col2': [5, 5, 6, 7]})
new_df = df.drop_duplicates(subset=['group'], keep='first')
print(new_df)
输出:
group col1 col2 0 A 1 5 2 B 3 6
解释:在上面的示例中,我们使用 drop_duplicates 方法来按组保留两列值匹配的行,否则按组保留第一行。在这里,我们指定了列 'group' 作为 subset 参数。由于 subset 只包含 'group' 一列,因此 pandas 将仅比较各组之间的 'group' 值。最后, keep 参数指定保留第一行。因此,第一个组 A 中的第一行保留,第二个组 B 中的第一行也保留。同时删除了组 A 中的第二行,因为它的 'col2' 值与第一行不匹配,删除了组 B 中的第二行,因为它的 'col1' 和 'col2' 值与第一行匹配。
上一篇:按总结数据筛选一个tibble
下一篇:按组保留随机行,使用SAS