为什么熊猫对象的副本会更改原始对象上的一列? (切片副本)

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

据我所知,通过切片进行的复制会复制结构的上层而不是下层(我不确定何时)。>>

但是,在这种情况下,我通过切片来制作副本,并且在编辑副本的两列时,原稿的一列被更改,而另一列则没有。

怎么可能?为什么是一列,而不是全部或都不选?

这里是代码:

import pandas as pd
import numpy as np
url = 'https://raw.githubusercontent.com/udacity/deep-learning-v2-pytorch/master/intro-neural-networks/student-admissions/student_data.csv'
data = pd.read_csv(url)

# Copy data
processed_data = data[:]
print(data[:10])

# Edit copy
processed_data['gre'] = processed_data['gre']/800.0
processed_data['gpa'] = processed_data['gpa']/4.0

# gpa column has changed
print(data[:10])

另一方面,如果我将processed_data = data[:]更改为processed_data = data.copy(),则可以正常工作。

这里,原始数据已编辑:

recreation

据我所知,通过切片进行的复制会复制结构的较高级别,但不会复制较低的级别(我不确定何时)。但是,在这种情况下,我通过切片来制作副本,并且在编辑两列...

python-3.x pandas copy
1个回答
0
投票

据我所知,通过切片进行的复制会复制结构的上层而不是下层。

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