3 回答

TA貢獻1854條經驗 獲得超8個贊
使用 update
df=df.set_index(['start','end'])
df.update(df1.set_index(['start','end']))
df.reset_index()
Out[99]:
start end price
0 A Z 100.0
1 B Y 200.0
2 C X 3.0
3 A Z 100.0
4 D W 5.0

TA貢獻1817條經驗 獲得超6個贊
首先,您可以合并:
s = df1.merge(df2, left_on=['start', 'end'], right_on=['start', 'end'], how='left')
然后你可以fillna索引你想要的列:
s.assign(price=s.price_y.fillna(s.price_x))[['start', 'end', 'price']]
start end price
0 A Z 100.0
1 B Y 200.0
2 C X 3.0
3 A Z 100.0
4 D W 5.0

TA貢獻1864條經驗 獲得超6個贊
merge
df.drop('price', 1).merge(df1, 'left').fillna(df)
start end price
0 A Z 100.0
1 B Y 200.0
2 C X 3.0
3 A Z 100.0
4 D W 5.0
我要合并,
['start', 'end']
而那個討厭price
的人會妨礙我。所以,我放棄了。我需要保存
df
索引,因為我有那重復'A'
和'Z'
。所以,我使用一個'left'
merge
現在我丟失的元素可以用
df
添加回答
舉報