我有两个 Dataframe
data1 = pd.DataFrame({'item': ['A', 'B', 'C'], 'cost': [10, 20, 30],
'quantity': [1, 2, 3]})
data2 = pd.DataFrame({'item': ['B', 'C', 'C','D'],
'cost': [20, 30, 30, 40], 'price': [10, 20, 30, 35],
'serialnumber': ['x', 'y', 'z', 'a'],
'color': ['red', 'blue', 'green']})
我想比较data1['item']
和data1['cost']
与data2['item']
和data2['cost']
。如果行item和cost都匹配,我想从data2
中获取serialnumber
和price
,并追加到data1
中
我用了这个python脚本
data1['price','serial']=np.where((data1['item']==data2['item']) &
(data1['cost']==data2['cost']),
data2['price','serialnumber'], np.nan)
我得到一个错误can only compare identically-labeled dataframe objects
由于两个 Dataframe 之间的索引不匹配。
预期输出为
item cost quantity price serial
0 A 10 1 NaN NaN
1 B 20 2 NaN NaN
2 C 30 3 30.0 z
请帮我把这件事理清楚
1条答案
按热度按时间ds97pgxw1#
您可以使用合并功能使用左关键字