【发布时间】:2020-10-13 18:05:08
【问题描述】:
我们有一个项目,其中有多个 *.py 脚本,其中包含接收和返回 pandas 数据帧变量作为参数的函数。
但这让我想知道:当数据帧变量作为参数传递或作为这些函数的返回变量传递时,它们在内存中的行为是什么?
修改 df 变量是否也会改变父/主/全局变量?
考虑以下示例:
import pandas as pd
def add_Col(df):
df["New Column"] = 10 * 3
def mod_Col(df):
df["Existing Column"] = df["Existing Column"] ** 2
data = [0,1,2,3]
df = pd.DataFrame(data,columns=["Existing Column"])
add_Col(df)
mod_col(df)
df
当 df 显示在末尾时:新的 Column 会出现吗?调用 mod_col 时对“现有列”所做的更改如何? 调用 add_Col 函数是创建了 df 的副本还是仅创建了一个指针?
将数据帧传递给函数时的最佳做法是什么,因为如果它们足够大,我确信创建副本会对性能和内存都有影响吗?
【问题讨论】:
标签: python pandas function dataframe memory-management