【发布时间】:2016-06-15 21:47:40
【问题描述】:
为什么下面的函数会更改名为df 的全局DataFrame?它不应该只是更改函数内的本地df,而不是全局df吗?
import pandas as pd
df = pd.DataFrame()
def adding_var_inside_function(df):
df['value'] = 0
print(df.columns) # Index([], dtype='object')
adding_var_inside_function(df)
print(df.columns) # Index([u'value'], dtype='object')
【问题讨论】:
-
阅读this。如果您需要 DF 的独立副本,请使用此方法:
df2 = df.copy() -
所以添加一列是唯一可以改变全局DataFrame的事情之一???对于没有明确声明的特定类型的对象,似乎可变性应该是全有或全无的事情。他们甚至没有列出其他可变的属性!不过,感谢您的解释。
标签: python pandas global local