我有一个名为 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
答案 0 :(得分:0)
您正在 df | [df]
中执行 for-loop
。 pandas.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