簡體   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