Mam ramkę danych pand z kilkoma wpisami i chcę obliczyć korelację między dochodami niektórych rodzajów sklepów. Istnieje wiele sklepów z danymi o dochodach, klasyfikacją obszaru działalności (teatr, sklepy odzieżowe, żywność ...) i innymi danymi.
Próbowałem utworzyć nową ramkę danych i wstawić kolumnę z przychodami ze wszystkich rodzajów sklepów należących do tej samej kategorii, a zwracana ramka danych ma tylko pierwszą kolumnę wypełnioną, a reszta jest pełna NaN. Kod, który zmęczyłem:
corr = pd.DataFrame()
for at in activity:
stores.loc[stores['Activity']==at]['income']
Chcę to zrobić, aby móc użyć .corr()
macierzy korelacji między kategorią sklepów.
Następnie chciałbym wiedzieć, w jaki sposób mogę wykreślić wartości macierzy (od -1 do 1, ponieważ chcę użyć korelacji Pearsona) z matplolibem.
Odpowiedzi:
Sugeruję jakiś rodzaj gry w następujących kwestiach:
Używanie danych UCI Abalone dla tego przykładu ...
Funkcja kreślenia macierzy korelacji:
# Matrycowa funkcja kreślenia korelacji
Mam nadzieję że to pomoże!
źródło
import numpy as np
nie jest konieczna, prawda?cbar
, więc dlaczego to przypisujesz?Inną alternatywą jest użycie funkcji mapy cieplnej w dnie morskim do wykreślenia kowariancji. W tym przykładzie zastosowano zestaw danych Auto z pakietu ISLR w R (taki sam jak w pokazanym przykładzie).
Jeśli chcesz być jeszcze bardziej fantazyjny, możesz użyć Pandas Style , na przykład:
źródło
rpy
modułu. Musisz użyć autonomicznego projekturpy2
. Zobacz ostrzeżenie z Pand tutaj .Dlaczego nie zrobić tego po prostu:
Możesz zmienić paletę kolorów , używając
cmap
parametru:źródło