我有一个数据框(在本文中称为data),在一列中有正值和负值。我做了以下工作:
data.Col.min() --> results in a negative value
data_abs = data
data_abs['Col'] = data_abs['Col'].abs()
data.Col.min() --> results to the lowest absolute value in the dataframe
在我看来,我已经将绝对值存储在自己的变量中,所以我想知道为什么将值转换为绝对值的代码行会递归地更改源变量
尝试通过以下方式转换值时,我也会得到相同的结果:
data_abs['Col'] = abs(data_abs['Col'])
由于已将两个数据帧设置为彼此相等,因此对其中一个数据帧的更改将影响另一个数据帧
正如@Psidom所指出的,
data_abs = data.copy()
不会有这个问题,正如documentation中所概述的,.copy就是要这样做的例如,如果我们有一个数据帧:
然后:
…将更改两个数据帧:
但如果我们改为使用。复制:
原始数据帧保持不变:
相关问题 更多 >
编程相关推荐