python - 根据同一df中其他列的多个列值过滤df

标签 python python-3.x pandas pandas-groupby

我有以下 df:

id | status | id_reference
1    True        NaN
4    False       1
2    False       Nan
7    False       3
6    True        2
10   True        4

我怎样才能只过滤或想要 df 中的行,其中:

状态列Trueid_reference 列值作为值存在于 df 的另一行中,作为 id 列 中的值。

所以根据上面的 df,

我想要下面的行:

id | status | id_reference 
6    True        2
10   True        4 

实际 df 要大得多,因为这是一个示例

最佳答案

id_reference 转换为 float(如果您还没有这样做)并使用 isin:

print (df.loc[df["status"]&df["id_reference"].astype(float).isin(df["id"])])

   id  status id_reference
4   6    True            2
5  10    True            4

关于python - 根据同一df中其他列的多个列值过滤df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64057944/

相关文章:

python - 如何使用异步请求保存 JSON 响应?

python - 为什么我在 python 上收到列表对象不可调用错误?

python - 查找数据框中每一列的平均值,按列分组,不包括一个值

python - 使用带有 lambda 函数的 DataFrame.apply 将返回的元组/列表分配给多个列

python - 数字 0.6 未正确转换为分数

python - 为什么 NumPy 中有奇怪的科学记数法?

python - Kivy:如何在没有kv语言的情况下通过FileChooser选择目录?

python - 访问列表元素并调用它们的函数

Python3奇怪的列表反转

python - pandas 中的自定义 HTML 表格模板