![](/img/trans.png)
[英]replace dataframe column values with values from an other dataframe column
[英]Replace values in column with column values from other dataframe in Python
我有两个数据框,一个带有更多列(但是其中两个很重要),第二个带有两个列。 DF1:
col_a col_b
101 104
102 201
103 301
505 601
DF2:
col_a_a col_b_b
420 637
425 643
201 701
601 702
我需要下一件事。 查找df1['col_b']
,如果在df2['col_a_a']
存在,则将其替换为df2['col_b_b']
。
我尝试了两种方法:
df1['col_b'] = np.where(df1['col_b'] == df2['col_a_a'], df2['col_b_b'], df1['col_b'])
df1.col_b[df1.col_b == df2.col_a_a] = df2.col_b_b
但是他们两个都向我返回了相同的错误: ValueError: Can only compare identically-labeled Series objects
所需的输出:
col_a col_b
101 104
102 701
103 301
505 702
另一种方法,使用pd.Series.map
:
df1['col_b'] = df1['col_b'].map(df2.set_index('col_a_a')['col_b_b']).fillna(df1['col_b'])
根据您的数据,这可能更有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.