【问题标题】:Error when splitting dataframe with a function and calling the dataframe individually in python使用函数拆分数据帧并在 python 中单独调用数据帧时出错
【发布时间】:2020-05-15 14:10:56
【问题描述】:

我有一个数据框:

df = pd.DataFrame([1,2,3,4,5,6])

我创建了一个函数,它将数据框和 % split 作为输入,并根据输入创建两个新的数据框

def splitdf(df,split=0.5):

    a = df.iloc[:int(len(df)]*split)]
    b = df.iloc[int((1-split)*len(df)):]

现在,当我运行这个函数并调用“a”时

splitdf(df)
display(a)

我收到错误:未定义名称“a”

【问题讨论】:

  • splitdf 的返回是什么???
  • 它不应该打印任何东西,但在调用时应该给出两个数据帧 a 和 b
  • 在你的函数中写返回 a,b 并且当调用函数 a,b = splitdf(df)
  • 只有在这个函数内部,我才能拆分“a”和“b”df,并且可以通过 a 和 b 在任何地方单独调用它?
  • 如果 a 和 b 是函数本地的,则不能在函数外访问它们。退出函数作用域后,它们基本上不再可用

标签: python pandas function dataframe


【解决方案1】:

absplitdf 本地的,所以你必须返回它们。

def splitdf(df,split=0.5):
    a = df.iloc[:int(len(df)]*split)]
    b = df.iloc[int((1-split)*len(df)):]
    return a, b

然后当你调用 splitdf 时,将返回值分配给一些变量:

df_a, df_b = splitdf(df)

您目前只是在splitdf 中定义ab,然后它们在函数退出时停止存在,因为它们超出了范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2018-04-13
    • 2023-04-02
    • 1970-01-01
    • 2019-10-25
    • 2020-12-12
    • 2021-10-10
    相关资源
    最近更新 更多