繁体   English   中英

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

[英]Filter df based on multiple column values of other columns in the same df

我有以下 df:

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

我如何只过滤或想要 df 中的行,其中:

status列为True并且id_reference列值存在于 df 的另一行中,作为id 列中的值作为值。

所以基于上面的df,

我想要下面的行:

id | status | id_reference 
6    True        2
10   True        4 

实际 df 大得多,因为这是一个样本

演员id_referencefloat ,如果你还没有和使用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

您可以尝试以下方法:

df.loc[df["status"] & df["id_ref"].isin(df["id"])]

你可以试试这个:

df = df.query('status == True & id_reference.notnull()')
print(df)
def filterDataSet(self,dataSetValues):
    try :
        print(dataSetValues)  dataSetValues= dataSetValues.fillna(0)
        dataSetValues = dataSetValues[dataSetValues.id_reference>0]
        dataSetValues = dataSetValues[dataSetValues.status == True]
        return dataSetValues
    except ValueError as ve:
        print("Exception while filter data ", ve)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM