【发布时间】:2020-02-04 20:29:15
【问题描述】:
这里是数据示例:
import pandas as pd
df = pd.DataFrame({
'file': ['file1','file2','file1','file2','file3','file3','file4','file5','file4','file5'],
'prop1': ['True','False','True','False','False','False','False','True','False','False'],
'prop2': ['False','False','False','False','True','False','True','False','True','False'],
'prop3': ['False','True','False','True','False','True','False','False','False','True']
})
file prop1 prop2 prop3
0 file1 True False False
1 file2 False False True
2 file1 True False False
3 file2 False False True
4 file3 False True False
5 file3 False False True
6 file4 False True False
7 file5 True False False
8 file4 False True False
9 file5 False False True
我需要将具有相同道具值的重复行删除到另一个数据框并将它们从原始文件中删除。
所以另一个数据框应该是这样的(重复的行不应该重复):
file prop1 prop2 prop3
0 file1 True False False
3 file2 False False True
8 file4 False True False
df = df.drop_duplicates() 删除 onlu 1 个重复的行,但不是第二个这样的:
file prop1 prop2 prop3
0 file1 True False False
1 file2 False False True
4 file3 False True False
5 file3 False False True
6 file4 False True False
7 file5 True False False
9 file5 False False True
【问题讨论】:
-
你试过
drop_duplicates吗? -
df.drop_duplicates() -
尝试:
new_df = df.loc[df.duplicated()].copy()将重复值存储到新数据帧中 -
不确定是否有一种简单的方法可以获取您在预期输出中显示的确切索引。但是就足够了
df.drop_duplicates(subset=[f'prop{i}' for i in range(1,4)]) -
是的 drop_duplicated 有效,但我还需要从数据框中删除重复的行
标签: python python-3.x pandas