python - 过滤掉 Pandas 数据框中 A 列或 B 列上不存在的数字?

标签 python pandas dataframe

我有两个数据框。 df1 的形式为

deva devb  c
   1    3  5

df2具有以下形式

dev
  1
  3

现在,我想加入两个数据帧,以便只获得 deva devb 中出现的 中的数字开发。换句话说,我想过滤掉 df2 中不存在的数字。我尝试了以下方法,但没有成功:

df1 = df2.merge(df1, left_on=["dev", "dev"], right_on=["deva","devb"])

如何使用两个不同列的“OR”连接/合并?

最佳答案

使用DataFrame.where + Series.isin :

df1[['deva','devb']]=df1[['deva','devb']].where(df1[['deva','devb']].isin(df2['dev'].tolist()))
#   deva  devb  c
#0     1     3  5

关于python - 过滤掉 Pandas 数据框中 A 列或 B 列上不存在的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59492392/

相关文章:

python - apply 与 operator.itemgetter 与 apply 的不一致行为applymap operator.itemgetter

python - 如何将 pandas df 写入具有多个空格的文本

python - 如何有条件地更新 Pandas 数据框中的多列

python - 删除满足列值条件的 pandas 数据帧的初始行,同时保持列中的序列值不变

r - 从一个字符串变量创建多个虚拟变量

python - Webpy,从另一个方法调用 View

Python subprocess.Popen 新建目录

python - 删除 Django 模板中的引号

python - 如何保存带有斜杠转义引号的 csv 文件?

python - 使用约束字典查询 Pandas