python-3.x - 在同一函数中引用局部变量
问题描述
我想使用一个函数合并 2 个 DataFrame。该函数在使用变量“x = 1”调用时创建 DataFrame df1,然后在使用“x!= 1”调用时创建另一个 df2,基于函数中的 if 语句 - 为了进一步清晰,下面的代码片段。
到达“df3 = pd.concat”行后,我收到错误“ UnboundLocalError: local variable 'df1' referenced before assignment ”。
我想了解如何实现将 df1 和 df2 连接到 df3 的结果。
def Concat(url, x):
if x == 1:
df1 = pd.read_json(url)
else:
df2 = pd.read_json(url)
df3 = pd.concat([df1, df2], ignore_index=True)
def main():
Concat('*url*', 1)
Concat('*url*', 2)
解决方案
你应该稍微调整一下,成为:
def Concat(url, x):
for i in x:
if i == 1:
df1 = pd.read_json(url)
else:
df2 = pd.read_json(url)
df3 = pd.concat([df1, df2], ignore_index=True)
def main():
Concat('*url*', [1, 2])
推荐阅读
- reactjs - 想用 useReducer 添加第二个 React reducer
- mysql - mysql 5.6 是否支持 [ with.. as() ] 语法?
- linux - 您如何通过相同的网关路由返回数据包进行端口转发?
- amazon-dynamodb - AmplifyDataStore DynamoDB 表的用途是什么?
- julia - 在 Jupyter 上安装多项式包
- mysql - 使用 ~4Gb 表 (MariaDB) 的简单 SELECT 查询很慢
- android - 尝试验证 println 或使用 mockk 登录 kotlin 和 android
- server - Lighttpd SSI:将变量设置为 HTTP_ACCEPT 的值
- python - python中是否有等效于bash的“set -x”?
- mysql - 将 Cloud Pak For Data 连接到 mysql 数据库时出现 401 错误