python pandas深拷贝和浅拷贝
时间: 2023-08-09 09:07:07 浏览: 148
Python中的深拷贝和浅拷贝详解
在Python中,深拷贝和浅拷贝是用来复制对象的概念。在使用pandas库时,可以使用深拷贝和浅拷贝来复制DataFrame和Series对象。
浅拷贝是创建一个新的对象,新对象的数据和原对象相同,但是共享相同的数据引用。换句话说,如果修改了新对象的数据,原对象的数据也会随之改变。在pandas中,可以使用`copy()`方法进行浅拷贝。
例如:
```python
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = df1.copy()
df2['A'][0] = 10
print(df1)
print(df2)
```
输出结果为:
```
A B
0 1 4
1 2 5
2 3 6
A B
0 10 4
1 2 5
2 3 6
```
可以看到,修改了df2的数据后,df1的数据并没有改变。
而深拷贝则是创建一个全新的对象,并且对象的数据和原对象完全独立,互不影响。在pandas中,可以使用`deepcopy()`方法进行深拷贝。
例如:
```python
import pandas as pd
import copy
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df3 = copy.deepcopy(df1)
df3['A'][0] = 10
print(df1)
print(df3)
```
输出结果为:
```
A B
0 1 4
1 2 5
2 3 6
A B
0 10 4
1 2 5
2 3 6
```
可以看到,修改了df3的数据后,df1的数据并没有改变,这就是深拷贝的效果。
阅读全文