gpt4 book ai didi

python - 如何根据多列的正则表达式从数据框中选择行

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:43 24 4
gpt4 key购买 nike

我正在尝试从数据帧 df 中选择行,其中字符串值不在列 col1col2 中。

我只能对一列执行以下操作:

df_clean = df[df["col1"].str.contains('thisstring|thatstring', na=False, case=False)==False]

但如果我能做到的话那就更好了:

df_clean = df[df["col1","col2"].str.contains('thisstring|thatstring', na=False, case=False)==False]

这可能吗?否则,我必须使用顶部代码中的 df_clean 并为 col2 再次运行它并保存到另一个变量中。

最佳答案

用途:

df = pd.DataFrame({'col1':['thisstring dd','thisstring ff','ee'],
'col2':['s thatstring','ddd','sds']})

如果需要将.str函数应用于DataFrame,请使用apply对于带有 anyboolean DataFrame每行至少检查一个 True:

f = lambda x: x.str.contains('thisstring|thatstring', na=False, case=False)
df_clean = df[~df[["col1","col2"]].apply(f).any(axis=1)]
print (df_clean)
col1 col2
2 ee sds

最简单的是将一列添加到另一列,然后通过 False 进行比较,使用 ~ 作为反向 bool 掩码:

s = df["col1"] + ' ' + df["col2"]
df_clean = df[~s.str.contains('thisstring|thatstring', na=False, case=False)]
print (df_clean)
col1 col2
2 ee sds

关于python - 如何根据多列的正则表达式从数据框中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com