为什么数据框的格式会自动应用于其他格式?

时间:2018-07-04 23:22:51

标签: python pandas pandas-map

很抱歉,如果这是一个愚蠢的问题。我对熊猫一无所知,甚至不知道要用什么关键词来寻找解决我问题的方法。

基本上,我有一个数字数据框

numeric_df = pd.DataFrame({"colA": [1.23, 2.34, 3.45],
                    "colB":[1.00, 2.00, 3.00]})

现在,我创建第二个df来复制numeric_df的值

formatted_df = numeric_df

然后我根据需要格式化“ formatted_df”中的两列,之所以这样做,是因为我想将numeric_df中的值保留为数字,以便以后可以对其进行操作。

formatted_df["colA"] = formatted_df["colA"].map("${:}".format)
formatted_df["colB"] = formatted_df["colB"].map("{:}Years".format)

但是,现在,如果我查看numeric_df,则其列已被格式化并收敛为字符串。是什么原因引起的?为什么我的地图方法会修改原始数据框?

在此先感谢您提供的帮助。

1 个答案:

答案 0 :(得分:1)

使用formatted_df = numeric_df表示变量共享相同的内存占用量。引用同一对象。要独立操作一个,您需要一个单独的对象。为此,您可以clone个对象或熊猫提供copy()

formatted_df = numeric_df.copy()

why should I make a copy of a data frame in pandas