Pandas DataFrame作为函数的参数 - Python

问题描述 投票:2回答:1

假设Pandas DataFrame作为参数传递给函数。然后,Python是否隐式复制DataFrame或者是传入的实际DataFrame?

因此,如果我在函数内对DataFrame执行操作,我是否会更改原始文件(因为引用仍然完好无损)?

我只想知道在将其传递给函数并对其进行操作之前是否应该对我的DataFrame进行深层复制。

python pandas function dataframe parameter-passing
1个回答
3
投票

如果函数参数不是不可变对象(例如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文章。

© www.soinside.com 2019 - 2024. All rights reserved.