python - Pandas 检查多行并复制不同的行

标签 python pandas numpy dataframe

我有以下场景。

表一

column_a column_b 
1         10
2         20
3         30
4         40

表2

column_a new_column 
1         10
2         20
3         30
5         0

如果 两个表中的 column_a 中的值匹配新的_column 应该用表 1 column_b 中的相应值填充。如果不是,则应填充 0

我可以在两个表上使用 iterrows 来做到这一点,但是有没有更好/更有效的方法?

谢谢。

最佳答案

map + fillna

df2['new_col'] = df2.column_a.map(df1.set_index('column_a').column_b).fillna(0)

print(df2)
   column_a  new_col
0         1     10.0
1         2     20.0
2         3     30.0
3         5      0.0

关于python - Pandas 检查多行并复制不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54937929/

相关文章:

python - 使用Boto3与RDS上的亚马逊极光交互

python - 比较二维 numpy 数组的元素

python - 在 NumPy 中使用循环依赖向量化嵌套 for 循环

python - 仅当满足一个条件时如何查找字符串并从数据帧中的单元格中删除值而不是行本身?

python Pandas : how to speed up exporting dataframes to csv?

python - 具有不规则时间间隔的大型数据集的快速 EMA 计算

python - Numpy - 在 Python 中创建一个输入为两个矩阵、输出为二进制矩阵的函数

python - Suds属性错误: 'NoneType' object has no attribute 'param_defs'

python - 3D分形切片渲染方法验证

python - 使用 pip 安装 lxml 时遇到问题