首页 > 解决方案 > 对 DataFrame 执行操作并获得与 pandas 中另一个 DataFrame 中存在的任一条件匹配的 DataFrame 结果

问题描述

我有一个 DataFrame df1:

df1 = pd.DataFrame([[31,12,32,65],[42,19,22,78],[76,13,45,68],[43,37,43,71],[43,18,34,73]],columns=['A', 'B', 'C', 'D'])

和另一个DataFrame df2:

df2 = pd.DataFrame([["B",">20"],["C",">40"],["D","<70"],["A","<40"]],columns = ["Feature","Condition"])

想要使用 df2 中存在的相应条件对 df1 执行操作。结果应该是满足 df2 中存在的任一条件的 DataFrame,如下所示输出。

Output = pd.DataFrame([[31,12,32,65],[76,13,45,68],[43,37,43,71]],columns=['A', 'B', 'C', 'D']) 

怎么做?请帮忙。

标签: pythonpandasdataframe

解决方案


您可以使用agg创建条件然后query

# create condition 
conds = " or ".join(df2.agg(" ".join, axis=1).tolist())

# apply condition
df = df1.query(conds)

print(df)

    A   B   C   D
0  31  12  32  65
2  76  13  45  68
3  43  37  43  71

推荐阅读