首页 > 解决方案 > 为什么只有 df.to_numpy() 参与计算时数据帧会被更改?

问题描述

import pandas as pd
import numpy as np

url = "https://raw.githubusercontent.com/PawinData/UC/SFBA/DistanceMatrix_shortestnetworks.csv"
Distance_df = pd.read_csv(url, index_col=0)

D = Distance_df.to_numpy()

我有一个数据框Distance_df,我将它转换为一个 numpy 数组D进行计算。随后发生的事情只涉及D,根本不涉及Distance_df。然而,两者D最终都Distance_df被改变了(相同的东西)。

虽然我也不知道为什么D会改变,但Distance_df最让我困惑的是数据框的行为。当它甚至没有出现在代码中时,它怎么能被改变呢?不知何故,我感觉到这与代码无关,而是在幕后如何处理值和对象。有人可以解释一下吗?

标签: pythonpandasdataframeobjectnumpy-ndarray

解决方案


尝试获取不被更改的数据框副本

import pandas as pd
import numpy as np

url="https://raw.githubusercontent.com/PawinData/UC/SFBA/DistanceMatrix_shortestnetworks.csv"

Distance_df = pd.read_csv(url, index_col=0)

df=Distance_df.copy()

D = df.to_numpy()

推荐阅读