[英]How to replace pandas DataFrame with the values of another DataFrame?
[英]How do I replace a dataframe's columns values with another dataframe values by Id in Pandas
有很多类似的问题,我都尝试过,但是它们并没有按照我希望的那样工作。 让我解释:
我有两个数据df1
和df2
。 df1
形状为(10000,10)
, df2
形状为(6000,3)
。
样本df1
:
id col1 col2 col3
sdfge 0 43 35
fgdge 0 34 353
dfgge 500 434 345
dsggh 43 34 345
bcbnn 23 0 86
gnncn 24 0 868
iopip 0 0 687
样本df2
id col1 col2
sdfge 3453 453
fgdge 23 345
dsggh 44 357
iopip 0 886
现在,我想通过使用df2
值(由id
连接来替换df1
的col1
和col2
值)。
使用map
:
df1['col1'] = (df1['id'].map(df2.set_index('id')['col1'])
.fillna(df1['col1'], downcast='infer'))
df1['col2'] = (df1['id'].map(df2.set_index('id')['col2'])
.fillna(df1['col2'], downcast='infer'))
print(df1)
id col1 col2 col3
0 sdfge 3453 453 35
1 fgdge 23 345 353
2 dfgge 500 434 345
3 dsggh 44 357 345
4 bcbnn 23 0 86
5 gnncn 24 0 868
6 iopip 0 886 687
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.