Pandas Dataframe存在于方法之外。为什么

时间:2016-06-14 12:43:40

标签: python pandas dataframe

让我假设我有一个简单的数据帧df 还有一个简单的方法可以对dataframe

做一些事情
def alterDF(df): 
    df1['new column'] = df['some column'] + x
    return df1

在上面的方法中,我用x修改整个column并将其保存到方法内的新变量名... 但是,当我检查我的原始数据帧(即df)时,我发现它还添加了新列......

我知道我创建的原始dataframe存在于方法之外。但是我希望方法中发生的任何更改都应该保留在那里,除非我通过我的方法中的return块保存更改。

但是,我知道我错了...我的方法中也应用了更改,也发生在我的方法之外。怎么会这样?为什么会这样?

1 个答案:

答案 0 :(得分:2)

可能是因为你有这样的一行

df1 = df # by doing this you copy the reference also

如果要复制数据框,请使用

df1 = df.copy() 

代替