3 回答

TA貢獻1804條經驗 獲得超2個贊
使用map和fillna:
df1['id'] = df1['id'].map(df2.set_index('id')['token']).fillna(df1['id'])
df1
輸出:
id first last size
0 ZA.00 1978-01-01 1979-01-01 2
1 As.11 2000-01-01 2000-01-01 1
2 SD.34 1998-01-01 2000-01-01 3
3 D 1998-01-01 1998-01-01 1
4 E 1999-01-01 2000-01-01 2
您可以使用map系列作為參數。

TA貢獻1824條經驗 獲得超8個贊
使用Merge和combine_first:
df = df1.merge(df2,how='outer')
df['id'] = df['token'].combine_first(df['id'] )
df.drop('token',inplace=True,axis=1)
另一種方法是replace與字典一起使用df2.values,這里 df1 數據框更改。:
df1.id.replace(dict(df2.values),inplace=True)
id first last size
0 ZA.00 1978-01-01 1979-01-01 2
1 As.11 2000-01-01 2000-01-01 1
2 SD.34 1998-01-01 2000-01-01 3
3 D 1998-01-01 1998-01-01 1
4 E 1999-01-01 2000-01-01 2
- 3 回答
- 0 關注
- 175 瀏覽
添加回答
舉報