Вычисление коэффициента корреляции в pandas DataFrame
Нужно рассчитать парную корреляцию для некоторых столбцов. Я сделала выборку по нужным мне столбцам, но при подсчете корреляции выводится ошибка:
AttributeError Traceback (most recent call last)
<ipython-input-23-9583e45c056c> in <module>
3 # с помощью метода corr:
4 x = df[["temp","atemp", "hum","windspeed(mph)","windspeed(ms)","cnt"]].values
----> 5 x.corr()
AttributeError: 'numpy.ndarray' object has no attribute 'corr'
Вот код который я использую:
df = pd.read_csv('bikes_rent.csv')
x = df[["temp","atemp", "hum","windspeed(mph)","windspeed(ms)","cnt"]].values
x.corr()
Я знаю, что можно сделать вот таким способом:
df.iloc[:,7:13].corr()
Но почему не работает первый способ?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
.values у вас лишнее, corr() - метод Pandas.DataFrame, а после .values у вас получается чистый numpy.ndarray, у которого нет такого метода. Вот так будет работать:
df = pd.read_csv('bikes_rent.csv')
x = df[["temp","atemp", "hum","windspeed(mph)","windspeed(ms)","cnt"]] # убрал .values
x.corr()
Но если вы хотите посчитать корреляции именно на numpy.ndarray полученном через df.values, то можно так: np.corrcoef(df.values)