假设Pandas DataFrame作为参数传递给函数。然后,Python是否隐式复制DataFrame或者是传入的实际DataFrame?
因此,如果我在函数内对DataFrame执行操作,我是否会更改原始文件(因为引用仍然完好无损)?
我只想知道在将其传递给函数并对其进行操作之前是否应该对我的DataFrame进行深层复制。
如果函数参数不是不可变对象(例如DataFrame
),那么您在函数中所做的任何更改都将应用于该对象。
EG
In [200]: df = pd.DataFrame({1:[1,2,3]})
In [201]: df
Out[201]:
1
0 1
1 2
2 3
In [202]: def f(frame):
...: frame['new'] = 'a'
...:
In [203]: f(df)
In [204]: df
Out[204]:
1 new
0 1 a
1 2 a
2 3 a
有关Python如何传递函数参数的详细解释,请参阅this文章。