如何根据必须包含特定值的两列 select 行?
How to select rows based on two column that must contain specific value?
我有一个数据集,在某个字段上有很多不正确的重复项,在我的可重现示例中,有不同颜色和形状的连续重复项。我有具有正确颜色和形状的实际数据帧到串行映射,并且需要 select 正确的行。
示例:
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' 来 select 'items' 中的正确行,因此预期结果是:
Out[3]:
serial color shape more_data even_more_data
0 0001 Blue Square G A
4 0002 Red Circle K E
您可以使用合并:
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
我有一个数据集,在某个字段上有很多不正确的重复项,在我的可重现示例中,有不同颜色和形状的连续重复项。我有具有正确颜色和形状的实际数据帧到串行映射,并且需要 select 正确的行。
示例:
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' 来 select 'items' 中的正确行,因此预期结果是:
Out[3]:
serial color shape more_data even_more_data
0 0001 Blue Square G A
4 0002 Red Circle K E
您可以使用合并:
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