应用循环后,未更改原始数据帧 - python

我有一个数据框列表,这样

df_lst = [df1, df2]

我还创建了一个函数来删除数据框中带有“ 0”的行:

def dropzeros(df):
    newdf = df[df['x']!=0.0]
    return newdf

我尝试通过循环应用此方法,并在循环中放置一个赋值变量,但是即使运行循环后,原始数据帧也保持不变。

for df in df_lst:
    df = dropzeros(df)

我也尝试使用列表理解来解决这个问题

df_lst = [dropzeros(df) for df in df_lst]

我知道该函数有效,因为当我在命令dropzeros(df)之前和之后应用print(len(df))时,len下降了,但是,我可能会知道如何解决这个问题,例如我的原始数据帧运行循环后更改?

参考方案

这是因为df循环中的变量for没有引用列表中的值。您正在循环的每个迭代中重新创建变量df

您可以通过enumeratepipe分配功能:

for idx, df in enumerate(df_lst):
    df_lst[idx] = df.pipe(dropzeros)

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Python:集群作业管理 - python

我在具有两个阶段的计算群集(Slurm)上运行python脚本,它们是顺序的。我编写了两个python脚本,一个用于阶段1,另一个用于阶段2。每天早上,我检查所有第1阶段的工作是否都以视觉方式完成。只有这样,我才开始第二阶段。通过在单个python脚本中组合所有阶段和作业管理,是否有一种更优雅/自动化的方法?我如何知道工作是否完成?工作流程类似于以下内容:w…

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…