python - 为什么这会给我留下 2 个相同的 DF?

标签 python pandas dataframe

我有一个这样的 DF。我想合并列:

DF=
ID    token
0     here
1     I
2     am

DF2 = DF
DF2["token"] = DF["token"] + "-" + DF["ID"].str.split(' ').str[-1]


DF2=
ID    token
0     here-0
1     I-1
2     am-2

但是当我查看两个 DF 时,它们看起来是一样的:

DF.to_csv("DF.csv")
DF2.to_csv("DF2.csv")

DF=
ID    token
0     here-0
1     I-1
2     am-2

DF2=
ID    token
0     here-0
1     I-1
2     am-2

这是为什么呢?不是只有 DF2 才有新格式吗?!

最佳答案

您指定了 DF2 = DF,它只是将名称 DF2 指向与名称 DF 相同的对象。这意味着当您通过任一名称访问该对象时,您对该对象所做的任何更改都会得到反射(reflect)。

改为使用

DF2 = DF.copy()

这将创建一个新对象,它是 DF 指向的对象的副本,并且是独立的。

关于python - 为什么这会给我留下 2 个相同的 DF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118037/

相关文章:

Python 字典数组 - 每个值一行

python - Pandas 加入来自同一数据框的字符串和数字列

python - 如何创建相应的列

r - 根据另一个数据帧中的数据更改一个数据帧上的值

r - 计算数据帧最后 3M 值的平均值并将它们添加到数据帧中,重复 18 次,无需在 R 中使用循环

python - Pygame:使用 time.sleep 延迟轮询 REST 响应的函数会卡住游戏窗口

python - ArcGis 上的 Python 出现 UnboundLocalError

python - 如何比较不完全匹配的字符串

python - 从 Pandas 数据框中删除空格

python - 每个用户的数据帧的移动平均值。 python 、 Pandas