为啥数据框的格式会自动应用于另一个? [复制]
Posted
技术标签:
【中文标题】为啥数据框的格式会自动应用于另一个? [复制]【英文标题】:Why does formatting of a dataframe automatically get applied to another? [duplicate]为什么数据框的格式会自动应用于另一个? [复制] 【发布时间】:2018-12-13 08:51:54 【问题描述】:对不起,如果这是一个非常愚蠢的问题。我是 pandas 的菜鸟,我什至不知道用什么关键词来搜索我遇到的问题的解决方案。
基本上,我有一个数字数据框,
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,它的列已经被格式化并聚合成一个字符串。是什么导致了问题?为什么我的map方法会修改原始数据框?
提前感谢您提供的任何帮助。
【问题讨论】:
【参考方案1】:使用formatted_df = numeric_df
意味着变量共享相同的内存占用。引用同一个对象。要独立操作一个,您需要一个单独的对象。为此,您可以 clone
一个对象或 Pandas 提供 copy()
formatted_df = numeric_df.copy()
why should I make a copy of a data frame in pandas
【讨论】:
非常感谢。这很有意义。以上是关于为啥数据框的格式会自动应用于另一个? [复制]的主要内容,如果未能解决你的问题,请参考以下文章