不同数据框的列之间的相关性

时间:2019-09-15 13:36:40

标签: python pandas

我有很多数据框。它们都共享相同的列结构"date", "open_position_profit", "more columns..."

    date    open_position_profit col2   col3
0   2008-04-01  -260.0  1   290.0
1   2008-04-02  -340.0  1   -60.0
2   2008-04-03  100.0   1   40.0
3   2008-04-04  180.0   1   -90.0
4   2008-04-05  0.0 0   0.0 0.0 1

尽管"date"存在于所有数据框中,但它们可能具有或没有相同的计数(某些日期可能在一个数据框中,而在另一数据框中则没有)。

我想计算所有这些数据帧的列"open_position_profit"的相关矩阵。

我已经尝试过了

dfs = [df1[["date", "open_position_profit"]], df2[["date", "open_position_profit"]], ...]
pd.concat(dfs).groupby('date', as_index=False).corr()

但这给了我每个单元格的一系列相关性:

                           open_position_profit
0    open_position_profit                   1.0
1    open_position_profit                   1.0
2    open_position_profit                   1.0
3    open_position_profit                   1.0
4    open_position_profit                   NaN

我想要整个时间序列的相关性,而不是每个单元格的相关性。我该怎么办?

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的意图,则必须先进行外部联接。以下代码通过horiz-adv-x键进行外部联接。缺失值可以用date表示。

NaN

然后,您可以计算与新DataFrame的相关性。

df = pd.merge(df1, df2, on='date', how='outer')
         date  open_position_profit_x  open_position_profit_y  ... ...
0  2019-01-01       ... 
1  2019-01-02       ...
2  2019-01-03       ...
3  2019-01-04       ...

请参阅:pd.merge