gpt4 book ai didi

python - Pandas DataFrame 上的循环过滤器不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:53 25 4
gpt4 key购买 nike

我有一个非常简单的 for 循环:

## Keep or Drop Rows from Ad Servers

dataframes = [atlas_df, flashtalking_df, innovid_df, ias_viewability_df, ias_fraud_df]

for df in dataframes:
df = df[df['Placement Name'].str.contains("»")]

当我运行 for 循环时,没有过滤。

但是,如果我手动将其记为:

ias_fraud_df = ias_fraud_df[ias_fraud_df['Placement Name'].str.contains("»")]

过滤器有效。

关于我遗漏的任何想法?

最佳答案

您正在处理迭代器,您需要通过使用列表中的索引来引用原始 df:

for i in range(len(dataframes)):
df = dataframes[i]
dataframes[i] = df[df['Placement Name'].str.contains("»")]

这样修改列表中原来的df

例子:

In [108]:
l = list('abcd')
for i in range(len(l)):
l[i] = 'new_' + l[i]

Out[108]:
['new_a', 'new_b', 'new_c', 'new_d']

对比:

In [110]:
l = list('abcd')
for x in l:
x = 'new_' + x
l

Out[110]:
['a', 'b', 'c', 'd']

所以你看到后者在语义上与你的代码相同,而另一个不会修改列表中的原始元素

关于python - Pandas DataFrame 上的循环过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43143176/

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