首页 > 解决方案 > 在同一函数中引用局部变量

问题描述

我想使用一个函数合并 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)

标签: python-3.xlocal-variables

解决方案


你应该稍微调整一下,成为:

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])

推荐阅读