繁体   English   中英

在 for 循环后未对 dataframe 进行更改

[英]Changes not made to a dataframe after a for cycle

第一个问题,所以请耐心等待(因为我也是 python 和熊猫的新手)。

我正在尝试对两个数据框进行一些更改,如下所示:

dfs = [data,prev_data]

for df in dfs:
...
    print(len(df))
    df = df[~df['column'].isin(['X','Y'])]
    print(len(df))

打印 output 是

271
162
654
396

但在关闭循环后,如果我使用

print(len(data))
print(len(prev_data))

结果又是第一次打印

271
654

由于它只有两个数据帧,因此我选择了两个单独的代码来解决问题,但是由于循环中有更多代码,因此所做的任何更改都需要进行两次。

我之前测试过所有代码,不同之处在于这部分。 如果需要,我可以在这里复制。

谢谢您的帮助。

您应该将更新的数据框存储在一个新列表中,如下所示:

dfs = [data,prev_data]
new_dfs =[]
for df in dfs:
...
    print(len(df))
    df = df[~df['column'].isin(['X','Y'])]
    new_dfs.append(df)  
    print(len(df))     

print(len(new_dfs[0]) #updated data
print(len(new_dfs[1]) #updated prev_data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM