2016-01-29 5 views
4

я пытаюсь быть в состоянии произвести корреляционную матрицу из панда dataframe, используя данные из указанных столбцовВыполнить основную корреляцию между двумя столбцами dataframe

Вот мой CSV данные:

col0,col1,col2,col3,col4 
122468.9071,1417464.203,3546600,151804924,10839476 
14691.1139,170036.0407,103847,19208604,2365065 

Вот два dataframes я создал:

df1 = pd.read_csv('c:/temp/test_1.csv', usecols=[0]) 
df2 = pd.read_csv('c:/temp/test_1.csv', usecols=[1]) 

Я попытался функции кОРР и corrwith и получить следующие ошибки:

Corr Function: 

print df1.corr(df2) 

Result: 

Error: Could not compare ['pearson'] with block values 

Corrwith: 

print df1.corrwith(df2) 

Result:  

col0 NaN 
col1 NaN 
dtype: float64 

Как вы можете видеть, в наборе данных нет нулевых значений, и float64 должен иметь возможность обрабатывать десятичные числа.

Любая помощь по решению будет принята с благодарностью.

Тиберий

+0

Что вы ожидаете получить для корреляции между этими двумя колоннами? –

+0

Ничто на данный момент, поскольку это просто фиктивные данные. Любые значения без ошибки будут приемлемыми. – Tiberius

ответ

5

Если вы пытаетесь создать матрицу корреляции между двумя колоннами, я предложил бы привести их в то же dataframe, как так:

df = pd.read_csv('c:/temp/test_1.csv', usecols=[0,1]) 
df.corr() 

Я загрузил ваши данные в формате CSV и получил матрицу корреляции 2x2 всех 1s, что ожидается.

Вы можете найти документацию на панд корреляции здесь: http://pandas.pydata.org/pandas-docs/stable/computation.html#correlation

+0

Я уверен, что обдумал это. Удивительно простое решение. Спасибо за помощь и справочные документы за будущее! – Tiberius

Смежные вопросы