首页 > 解决方案 > 如何在 python 中获取 DataFrame 的原始版本?

问题描述

在处理 DataFrame 时,碰巧我更改了一列的值。然后,我意识到它影响了我的 DataFrame。

print(df) #Before applying the change

    A   B
0   3   5
1   9   6
2   4   7

print(df) #After applying the change

    A   B
0   3   0
1   9   0
2   4   0

然后,我使用方法 (df._is_view) 来查看我的 df 是视图还是副本,结果输出是:Flase。

那么,有没有办法让我原来的 DataFrame (在我做出改变之前)。

提前致谢。

标签: pythonpython-3.xpandas

解决方案


简短的回答是否定的。复制的数据帧不维护指向它们作为副本的源数据帧的指针。

如果您的数据框是具有自己标识符的对象的副本,那么数据当然仍会保留在那里:

>>> df_orig = pd.DataFrame({'A': [3, 9, 4], 'B': [5, 6, 7]})
>>> df = df_orig.copy()
>>> df['B'] = 0
>>> df._is_view
False

在这种情况下,df_orig仍然会有你的数据。但是,如果您没有指向数据的变量,那么您就不走运了。希望这可以帮助!


推荐阅读