繁体   English   中英

在 Pandas dataframe 中循环 OR 条件

[英]Loop through OR condition in Pandas dataframe

我已经编写了以下代码块来完成它需要做的事情(只要字符串“Hello”出现在 col1、col2、col3 或 col4 中,就保留该行):

hello_mask = df["col1"].str.contains("Hello",na=False) | df["col2"].str.contains("Hello",na=False) | df["col3"].str.contains("Hello",na=False) | df["col4"].str.contains("Hello",na=False)
 
df_hello = df[hello_mask]

然而,它很丑陋,我认为 For 循环将是一个更优雅的解决方案(我可能是错的)。 问题是我对coding不是最精通的,实在是拼不出来。

感谢您的耐心等待 - 任何建议都将不胜感激!

如果要检查单元格是否完全匹配“Hello”,请使用:

cols_to_check = ['col1', 'col2', 'col3', 'col4']
hello_mask = df[cols_to_check].eq('Hello').any(axis=1)

如果要检查部分字符串:

cols_to_check = ['col1', 'col2', 'col3', 'col4']
hello_mask = df[cols_to_check].apply(lambda x: x.str.contains('Hello')).any(axis=1)

暂无
暂无

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

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