如何使用相同的数据存储并仅更改列。
如果我做这样的事情:
In [30]: import pandas as pd
In [31]: import numpy as np
In [32]: df = pd.DataFrame(np.zeros((2,2)))
In [33]: df_new = pd.DataFrame(df)
In [34]: df[0][0]=5
In [35]: df_new
Out[35]:
0 1
0 5.0 0.0
1 0.0 0.0
In [36]: df_new.columns=["a", "b"]
In [37]: df_new.columns
Out[37]: Index(['a', 'b'], dtype='object')
In [38]: df.columns
Out[38]: Index(['a', 'b'], dtype='object')
更改两个数据框的列。在原地使用数据框rename
会导致两个数据框的列都发生变化。
答案 0 :(得分:0)
您应该使用pandas.DataFrame.copy()
创建现有数据框的副本。
对于您的代码,
df_new = df.copy()
而不是
df_new = pd.DataFrame(df)
会做到这一点。