Как соотнести столбцы из двух разных фреймов данных с datetimeindex - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь сопоставить один и тот же столбец в двух разных фреймах данных (одинакового размера). DFS используют биржевые данные с индексом datetime. Всякое возможное соотношение, которое я могу придумать, дает только NaN для ответа. Дтип df Indees все портит? Примечание: на данный момент в программе мне все равно, какие даты / индексы на самом деле.

ввод:

import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like # temp fix

import numpy as np
import fix_yahoo_finance as yf

from pandas_datareader import data, wb
from datetime import date

df1 = yf.download('IBM', start = date (2000, 1, 3), end = date (2000, 1, 5), progress = False)
df2 = yf.download('IBM', start = date (2000, 1, 6), end = date (2000, 1, 10), progress = False)

print (df1)
print (df2)
print (df1['Open'].corr(df2['Open'])) 

выход:

                Open    High      Low     Close  Adj Close    Volume
Date                                                                
2000-01-03  112.4375  116.00  111.875  116.0000  81.096031  10347700
2000-01-04  114.0000  114.50  110.875  112.0625  78.343300   8227800
2000-01-05  112.9375  119.75  112.125  116.0000  81.096031  12733200
              Open      High      Low  Close  Adj Close    Volume
Date                                                             
2000-01-06  118.00  118.9375  113.500  114.0  79.697784   7971900
2000-01-07  117.25  117.9375  110.625  113.5  79.348267  11856700
2000-01-10  117.25  119.3750  115.375  118.0  82.494217   8540500
nan

1 Ответ

0 голосов
/ 10 сентября 2018

Индексы не совпадают, поэтому вы получаете nan Я считаю. Используйте numpy.corrcoef для необработанных значений, чтобы получить свой результат:

np.corrcoef(df1['Open'].values,df2['Open'].values)

выход

[[ 1.         -0.74615579]
 [-0.74615579  1.        ]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...