[英]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.