【发布时间】:2020-10-01 16:06:45
【问题描述】:
我有两个数据框 df1 和 df2,我想在 df1 中创建一个新列并将该列中的值设置为 0,其中 df1 中的行包含在 df2 中。更具体地说:
sample_data_1 = {'col1': ['80', '8080'], 'col2': ['0.0.0.0', '143.21.7.165']}
df1 = pd.DataFrame(data=sample_data_1)
sample_data_2 = {'col1': ['80', '8080', '1', '8888'], 'col2': ['0.0.0.0', '143.21.7.165', '1', '5.5.5.5'], 'col3': ['1','2','3']}
df2 = pd.DataFrame(data=sample_data_2)
col1 col2
0 80 0.0.0.0
1 8080 143.21.7.165
col1 col2 col3
0 80 0.0.0.0 1
1 8080 143.21.7.165 2
2 1 1 3
3 8888 5.5.5.5 4
我想向 df1 添加一列并将这些值设置为 0,其中 df1 中的 col1 和 col2 与 df2 中的 col1 和 col2 匹配。生成的数据框应如下所示:
col1 col2 score
0 80 0.0.0.0 0
1 8080 143.21.7.165 0
当数据框大小相同时,我可以使用 .loc 函数和逻辑与进行直接比较,但是当它们具有不同的形状时,我会出现“无法比较系列”的异常。想法?
感谢您的帮助!
【问题讨论】:
标签: python python-3.x pandas dataframe