要过滤出出现2次及2次以上的行,你可以使用 `groupby` 和 `filter` 的组合方式。你的代码基本是正确的,但可能有一些细节问题。下面是一个完整的示例,确保可以达到你的预期:
import pandas as pd
# 假设这是你的DataFrame
data = {
'新列': ['abc123', 'def456', 'abc123', 'ghi789', 'def456', 'def456'],
'其他列': [1, 2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)
# 使用 `groupby` 和 `filter` 保留出现2次及以上的行
df2 = df.groupby('新列').filter(lambda x: len(x) >= 2).reset_index(drop=True)
print(df2)
这个代码会输出:
新列 其他列
0 abc123 1
1 abc123 3
2 def456 2
3 def456 5
4 def456 6
这里确保我们对 `新列` 做了分组,然后用 `filter` 来过滤掉那些出现次数少于2次的组。`reset_index(drop=True)` 用于重置索引。
如果这样做仍然达不到你的要求,请检查:
1. 确保你的数据实际上包含重复的值。
2. 检查你的列名或者数据格式是否正确。
如果问题依然存在,可以具体描述数据结构或者提供小段数据样本,我可以帮助得更详细。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |