【问题标题】:Passing dataframes as argument将数据帧作为参数传递
【发布时间】:2020-05-28 01:34:30
【问题描述】:

我有一个在数据集中应用一些转换的函数。我想把每个操作放在不同的函数中,这样代码变得更加模块化,主函数不需要大量的代码行。

def do_somethings(df):
    df = do_a(df)
    df = do_b(df)
    df = do_c(df)
    return df

但这是个好主意吗?因为每次我将数据框作为参数传递时,python都会复制它,对吗?而且我的数据框很大。这不意味着性能吗?

我真的不希望我的函数有 100 多行代码。

【问题讨论】:

  • 不,被调用的函数没有得到副本。调用代码传递对参数的引用,而不是副本。

标签: python python-3.x pandas dataframe dataset


【解决方案1】:

据我所知,默认情况下不会创建数据框的副本,因为存在 copy() 方法。

但如果它创建了一个副本,您可能可以使用 copy() 方法并指定 deep=False。 在文档here 中解释说,使用 deep=False 进行复制,既不会复制数据也不会复制索引,因此不会降低性能。

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 2021-03-12
    • 2022-09-28
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多