我有很多数据框。它们都共享相同的列结构"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
我想要整个时间序列的相关性,而不是每个单元格的相关性。我该怎么办?
答案 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