我有一个数据集,在某个字段上有很多不正确的重复项,在我的可复制示例中,有连续的重复项具有不同的颜色和形状。我有实际的数据框,具有正确的颜色和形状以进行序列映射,因此需要选择正确的行。
示例:
import pandas as pd
items = pd.DataFrame({
'serial': ['0001', '0001', '0001', '0002', '0002', '0002'],
'color': ['Blue', 'Red', 'Green', 'Blue', 'Red', 'Green'],
'shape': ['Square', 'Circle', 'Star', 'Square', 'Circle', 'Star'],
'more_data': ['G', 'H', 'I', 'J', 'K', 'L'],
'even_more_data': ['A', 'B', 'C', 'D', 'E', 'F']
})
real = pd.DataFrame({
'serial': ['0001', '0002'],
'color': ['Blue', 'Red'],
'shape': ['Square', 'Circle']
})
然后
Out[1]: items
serial color shape more_data even_more_data
0 0001 Blue Square G A
1 0001 Red Circle H B
2 0001 Green Star I C
3 0002 Blue Square J D
4 0002 Red Circle K E
5 0002 Green Star L F
Out[2]: real
serial color shape
0 0001 Blue Square
1 0002 Red Circle
我需要使用'real'在'items'中选择正确的行,这样预期的结果是:
Out[3]:
serial color shape more_data even_more_data
0 0001 Blue Square G A
4 0002 Red Circle K E
答案 0 :(得分:1)
您可以使用合并:
real.merge(items)
输出
Out[305]:
serial color shape more_data even_more_data
0 0001 Blue Square G A
1 0002 Red Circle K E