在使用pandas dataFrames和list时,我注意到代码的行为有些奇怪。我不知道它们是否相关,或者问题是否来自我理解之外的问题。如果有人能解释原因,我将不胜感激。我的代码类似于以下示例:
list_of_df=[]
for i in range(0,5):
df=a_function(data)
list_of_df.append(df)
a_function
正在获取名为“data”的初始dataFrame,修改并返回它。这是一个愚蠢的例子,但基本上显示了我正在进行的操作:
def a_function(data):
data[new_column]=1
data.loc[:,existing_column]=0
return data
我期待的是最终list_of_df是一个不同dataFrames的列表,但最终我得到的所有dataFrames都是相同的,并且等于最后添加的那个。
当我使用以下解决方法时,代码按预期工作:
list_of_df=[]
for i in range(0,5):
df=data.copy()
df=a_function(df)
list_of_df.append(df)
但我不确定为什么。谢谢你的帮助!
编辑:有关a_function在dataFrame上执行操作的更多信息