在熊猫中管理数据清除数据的最佳方法

时间:2019-11-06 16:02:31

标签: python pandas

在进行后续分析之前,我使用pandas库清理数据。通常,我会做很多小功能来完成特定任务:

def clean_str_columns(df, column):
    # do something to the dataframe
    df[column] = df[column].str.strip()
    # do more things
    return df

然后称呼他们:

df = clean_str_columns(df, 'column_name')

如果我是对的,那么当我将df传递给函数时,它将对df对象进行本地引用,这意味着应该给出相同的结果:

def clean_str_columns(df, column):
    # do something to the dataframe
    df[column] = df[column].str.strip()
    # do more things

然后:

clean_str_columns(df, 'column_name')

和df对象将被编辑,因此我的全局引用将指向已编辑的对象。

在现场编辑此类df时,“最佳样式”是什么?

我主要关心这个问题,因为当我使用许多功能并清理大型df时,我经常会得到一个MemoryError。我使用%who IPython魔术来跟踪变量,没有杂散变量,并定期运行Python垃圾收集器。我的df越来越小(删除行和列),但仍然出现此错误。因此,我担心这个问题与我多次将全局引用重新分配给df有关?

1 个答案:

答案 0 :(得分:1)

如果pd.DataFrame.pipe被一组函数更改,则可以尝试使用dataframe,它以要应用的函数为参数,还可以使用{{1 }},如果您的数据框没有被垃圾收集器删除,您会在那里找到它