我想连接两个 pandas DataFrame 而不复制数据。也就是说,我希望连接的 DataFrame 成为两个原始 DataFrame 中数据的视图。我尝试使用 concat() 但不起作用。此代码块显示更改基础数据会影响连接的两个 DataFrame,但不会影响连接的 DataFrame:
arr = np.random.randn(12).reshape(6, 2)
df = pd.DataFrame(arr, columns = ('VALE5', 'PETR4'), index = dates)
arr2 = np.random.randn(12).reshape(6, 2)
df2 = pd.DataFrame(arr, columns = ('AMBV3', 'BBDC4'), index = dates)
df_concat = pd.concat(dict(A = df, B = df2),axis=1)
pp(df)
pp(df_concat)
arr[0, 0] = 9999999.99
pp(df)
pp(df_concat)
Run Code Online (Sandbox Code Playgroud)
这是最后五行的输出。为 arr[0, 0] 分配新值后 df 发生变化;df_concat 不受影响。
In [56]: pp(df)
VALE5 PETR4
2013-01-01 -0.557180 0.170073
2013-01-02 -0.975797 0.763136
2013-01-03 -0.913254 1.042521
2013-01-04 -1.973013 -2.069460 …Run Code Online (Sandbox Code Playgroud)