在熊猫数据框列表中搜索字符串

时间:2021-04-29 13:00:43

标签: pandas for-loop

我有一个名为 list_models 的数据框列表。

list_models=[df_gl,df_reg, df_in]

每个 df 由相同的列组成:Title, URL, Status

我正在寻找一个在 Status 中查找字符串并更新 list_models 的循环。

list_models=[df[df['Status'].str.contains('In-depth', na=False)] |
         [df['Status'].str.contains('Approve', na=False)] 
         for df in list_models]

此代码不会更新 list_models 中的 dfs,我不明白为什么。 谁能给我解释一下?

显然有人已经发布了类似的问题。然而,答案并不全面,至少对我而言。 Apply a for loop to multiple DataFrames in Pandas

2 个答案:

答案 0 :(得分:0)

您正在 df | [df] 中执行 for-looppandas.Series.str.contains()pat 参数可以一次检测多个字符串,如

list_models = [df[df['Status'].str.contains('In-depth|Approve', na=False)]
               for df in list_models]

答案 1 :(得分:0)

上面的循环将数据帧的副本存储在列表中,但没有按照我的意图更改它们。

打开列表就行了。

df_gl,df_reg, df_in=list_models