如何添加两个时间体验矩阵?

2024-04-26 23:36:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据域(df_A和df_B),我想合并成一个数据域(df_total),但我只得到了nan!怎么办

print(df_A)

DATE           OILd      GOLD   US-RUSS
2000-01-31  0.073370 -0.026818  0.000099
2000-02-29  0.105606  0.038686  0.165135
2000-03-31 -0.121361 -0.061565 -0.065931
2000-04-30 -0.042815 -0.000181 -0.060177

print(df_B)
            OILm      COMM
DATE                          
2000-01-31  0.078671  0.037987
2000-02-29  0.020197  0.008202
2000-03-31 -0.133824 -0.059894
2000-04-30  0.108403  0.066403

df_total=df_A+df_B
print(df_total)

            COMM  GOLD  OILd  OILm  US-RUSS
2000-01-31   NaN   NaN   NaN   NaN    NaN
2000-02-29   NaN   NaN   NaN   NaN    NaN
2000-03-31   NaN   NaN   NaN   NaN    NaN
2000-04-30   NaN   NaN   NaN   NaN    NaN

Tags: 数据dfdatenantotaluscommprint
1条回答
网友
1楼 · 发布于 2024-04-26 23:36:41

可以将pd.concat与参数axis=1一起使用

代码:

import pandas as pd

df1 = pd.DataFrame([['a', 1], ['b', 2]],
                   columns=['A', 'B'])
df2 = pd.DataFrame([['c', 3], ['d', 4]],
                   columns=['C', 'D'])
print(pd.concat([df1, df2], axis=1))

df1:

   A  B
0  a  1
1  b  2

df2:

   C  D
0  c  3
1  d  4

输出:

   A  B  C  D
0  a  1  c  3
1  b  2  d  4

所以在你的情况下,你必须这样写

df_total = pd.concat([df_A, df_B], axis=1)

您可以检查Pandas documentation here for concat method


您也可以使用“合并”来执行此操作

print(df_A)

DATE           OILd      GOLD   US-RUSS
2000-01-31  0.073370 -0.026818  0.000099
2000-02-29  0.105606  0.038686  0.165135
2000-03-31 -0.121361 -0.061565 -0.065931
2000-04-30 -0.042815 -0.000181 -0.060177

print(df_B)
            OILm      COMM
DATE                          
2000-01-31  0.078671  0.037987
2000-02-29  0.020197  0.008202
2000-03-31 -0.133824 -0.059894
2000-04-30  0.108403  0.066403

您有DATE列在两个df中都是通用的

print(df_A.merge(df_B, on='DATE', how='outer'))

会给你想要的结果

相关问题 更多 >