【问题标题】:How do I filter out rows based on another data frame in Python? [duplicate]如何根据 Python 中的另一个数据框过滤掉行? [复制]
【发布时间】:2021-07-05 11:01:36
【问题描述】:

所以我需要使用另一个数据帧作为条件从一个数据帧中过滤掉行。

df1:

system     code
AIII-01    423
CIII-04    123
LV-02      142

df2:

StatusMessage    Event
123              Gearbox warm up

所以对于这个例子,我需要删除代码为 423 和 142 的行。

我该怎么做?

【问题讨论】:

  • df1.merge(df2,left_on='code',right_on='StatusMessage')

标签: python pandas dataframe spyder


【解决方案1】:

为您提供即插即用脚本。如果这不适用于您的常规代码,请检查以确保您在同一列中具有相同的类型。

import pandas as pd

df1 = pd.DataFrame(
    {"system": ["AIII", "CIII", "LV"], "Code": [423, 123, 142]}
)

df2  = pd.DataFrame(
    {"StatusMessage": [123], "Event": ["Gearbox warm up"]}
)

### This is what you need
df1 = df1[df1.Code.isin(df2.StatusMessage.unique())]

print(df1)

【讨论】:

  • Anurag 的代码也可以工作(如果你想合并应该使用)。您也可以在我的代码中删除.unique(),具体取决于时空要求。
  • 查看我的编辑!应该有帮助。如果没有,请回复我。
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 2021-05-16
相关资源
最近更新 更多