2 回答

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊
如果所有的行都是獨(dú)特的使用concat有drop_duplicates:
df = pd.concat([df2, df1], ignore_index=True).drop_duplicates()
print (df)
order_id shop
0 12345 'NL'
1 45678 'FR'
2 12345 'DE'
3 34567 'NL'
5 99999 'FR'
6 12345 'UK'
如果不是唯一的過濾器不等于行merge同indicator=True,然后concat到df2:
df3 = df1.merge(df2, how='left', indicator=True).query('_merge == "left_only"')[df1.columns]
df = pd.concat([df2, df3], ignore_index=True)

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊
看起來您希望創(chuàng)建一組所有可能的組合?如果是這樣,您可以使用以下方法創(chuàng)建唯一對:
import pandas as pd
data1 = {'order_id': [12345, 45678, 78901, 12345, 12901, 12345], 'shop': ['NL', 'FR', 'AB', 'AB', 'NL', 'NL']}
df1 = pd.DataFrame(data=data1)
data2= {'order_id': [12345, 45678, 12345, 34567], 'shop': ['NL', 'FR', 'DE', 'NL']}
df2 = pd.DataFrame(data=data2)
df3 = df1
df3['Combi'] = df3['order_id'].astype('str') + df3['shop']
df3.drop_duplicates('Combi', inplace=True)
添加回答
舉報