繁体   English   中英

检查元组是否在DataFrame中的多列中

[英]Check if tuple is in multiple columns in DataFrame

考虑以下 dataframe:

df = pd.DataFrame({'col1': [1,2,3,4], 'col2' : ['one','two','three','four'], 'col3': ['abc','xyz','pqr','rst']})
df
    col1    col2    col3
0   1       one     abc
1   2       two     xyz
2   3       three   pqr
3   4       four    rst

我们如何搜索跨不同列的多个值?

value_to_search = (1,'one')

在上面的例子中,我们想在col1 one搜索1 ,在 col2 中搜索 1。

一种方法是

df[ (df['col1']==value_to_search[0]) & (df['col2']==value_to_search[1])]
  • 但是当您必须搜索大量值时,上述方法并不干净。 (例如: values_to_search = (1,'one','uno','first','abc'...)

另一种方法可能是遍历行,但这是一种低效的方法。

有什么干净有效的方法吗?

根据@abc 提供的答案,一种更简洁的方法可能是,

cols_to_search = ['col1','col2']
df[df[cols_to_search].isin(value_to_search).all(axis=1)]

首先,我不确定你的意思是干净,但你可以试试 .isin() 方法。

例如,

    options = (1,2,"one",3)

    df.loc[(df["col1"].isin(options)) & (df["col2"]=='one')]

    col1    col2    col3
  0  1      one     abc

希望它能帮助你。

暂无
暂无

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

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