Funkcja pandas crosstab

Funkcja pandas crosstab
Funkcja „croSstab ()” w pandaach tworzy tabelę między-tebulacji, która wyświetla częstotliwość, z jaką pojawiają się określone zestawy danych. Metoda „crosstab ()” jest jedną z kilku technik w pandy, która pozwala restrukturyzować dane. Ten post wyjaśnia, jak użyć funkcji „crosstab ()”.

Crosstab () Składnia:

Pandy.crosstab (indeks, kolumny, wartości = brak, rownames = none, colnames = none, margines = false, margines_name = 'all', dropna = true, normalize = false)

Parametry:

  1. Tutaj pierwszym parametrem jest „indeks”, który jest wartościami wykorzystywanymi jako indeks danych wyjściowych DataFrame. Może to być tablica, seria lub wiele tablic lub serii.
  2. „Kolumny” to wygenerowane kolumny DataFrame.
  3. „Wartości” to wartości, które są wykorzystywane do obliczenia statystyki dostarczonej przez „AGG _FUNC”.
  4. „Rownames” to nazwa, które są przydzielane do wierszy w wynikającej z nich DataFrame. „Rownames = none” jest domyślnym ustawieniem dla tego argumentu.
  5. „Nazwy Colnames” to nazwa kolumny, które są podane do wyjścia DataFrame. „ColNames = none” to ustawienie domyślne. Wejście tej funkcji to „wartości”, a element zwrotny jest zagregowaną statystyką, taką jak średnia, maksimum itp.
  6. „Margines” określa, czy dodać dodatkowy wiersz i kolumnę, która pokazuje sumę komórek, a także do kolumny. „Margin = false” to ustawienie domyślne.
  7. „Nazwa marginesu” to tytuł nowo dołączonego wiersza i kolumny, jeśli „marginesy” są skonfigurowane do „true”.
  8. „Dropna” określa, czy usunąć kolumny o wartości NAN. „Dropna = false” to domyślna konfiguracja.
  9. „Normalizuj” mówi, czy znormalizować uzyskane liczby, dzieląc przez całkowitą sumę.

Przykład 1:
Utwórz ramkę danych z 5 kolumnami i wygeneruj tabelę awaryjnych (karta krzyżowa), ustawiając oś x jako kolumnę „Option2” i oś y jako kolumnę „Nazwa”.

importować pandy
# Utwórz ramkę danych z 5 kolumnami
mydata = pandy.DataFrame ([[1, „Sravan”, „Technologia chmurowa”, „bazy danych”, 89],
[2, „Sravan”, „Python”, „Frontend Programming”, 98],
[3, „Sravan”, „Elective 1”, „Batabases”, 50],
[5, „satwik”, „php”, „bazy danych”, 99],
[6, „Diba”, „PHP”, „Bazy danych”, 19],
[9, „Diba”, „Elective 1”, „Frontend Programming”, 54],
],
kolumny = [„Identyfikator egzaminu”, „nazwa”, „opcja 1”, „opcja2”, „Marks”]
)
druk (mydata, „\ n”)
# Użyjmy funkcji crosstab ()
Częstotliwość = pandy.Crosstab (mydata.Opcja 2, MyData.nazwa)
Drukuj (częstotliwość)

Wyjście:

Wyjaśnienie:
Podajemy kolumnę „Option2” jako oś x i kolumnę „Nazwa” jako oś y. Teraz możesz zobaczyć na poprzedniej ilustracji, że tabela częstotliwości jest generowana. Przeanalizujmy to.

  1. „Bazy danych” - „Diba” trzymają tylko 1, „Satwik” również 1 i „Sravan” 2.
  2. „Programowanie frontendowe” - „Diba” posiada tylko 1, „Satwik” posiada 0, a „Sravan” również 1 to 1.

Przykład 2:
Użyj tej samej ramki danych i wygeneruj tabelę awaryjnej (zakładka krzyżowa), ustawiając oś.

importować pandy
# Utwórz ramkę danych z 5 kolumnami
mydata = pandy.DataFrame ([[1, „Sravan”, „Technologia chmurowa”, „bazy danych”, 89],
[2, „Sravan”, „Elective 1”, „Frontend Programming”, 98],
[3, „Sravan”, „Elective 1”, „Batabases”, 50],
[5, „satwik”, „php”, „bazy danych”, 99],
[6, „Diba”, „PHP”, „Bazy danych”, 19],
[9, „Diba”, „PHP”, „Programowanie frontendowe”, 54],
],
kolumny = [„Identyfikator egzaminu”, „nazwa”, „opcja 1”, „opcja2”, „Marks”]
)
# Użyjmy funkcji crosstab ()
Częstotliwość = pandy.Crosstab ([mydata.Opcja 1, MyData.opcja 2], mydata.nazwa)
Drukuj (częstotliwość)

Wyjście:

Wyjaśnienie:
Podajemy kolumny „Option1” i „Option2” jako osi x za pośrednictwem listy i kolumny „Nazwa” jako osi y. Teraz możesz zobaczyć na poprzedniej ilustracji, że tabela częstotliwości jest generowana.

Przykład 3: Ustaw marginesy
Teraz tworzymy tabelę awaryjnych dla kolumn „Option2” i „Nazwa”, ustawiając marginesy i podając nazwy marginesu jako „całkowitą liczbę”.

importować pandy
# Utwórz ramkę danych z 5 kolumnami
mydata = pandy.DataFrame ([[1, „Sravan”, „Technologia chmurowa”, „bazy danych”, 89],
[2, „Sravan”, „Elective 1”, „Frontend Programming”, 98],
[3, „Sravan”, „Elective 1”, „Batabases”, 50],
[5, „satwik”, „php”, „bazy danych”, 99],
[6, „Diba”, „PHP”, „Bazy danych”, 19],
[9, „Diba”, „PHP”, „Programowanie frontendowe”, 54],
],
kolumny = [„Identyfikator egzaminu”, „nazwa”, „opcja 1”, „opcja2”, „Marks”]
)
# Użyjmy funkcji crosstab (), ustawiając marginesy i parametr marginesowy
Częstotliwość = pandy.Crosstab (mydata.Opcja 2, MyData.Nazwa, margines = true, margines_name = "Całkowita liczba")
Drukuj (częstotliwość)

Wyjście:

Wyjaśnienie:
Przekazujemy marginesy i ustawiamy je na true i margines_name na „całkowitą liczbę”. Marginesy są tworzone, a całkowita suma wartości dla osi jest zwracana jako 6.

W rzędach:

  1. Dla „baz danych” - 1+1+2 = 4
  2. W przypadku „programowania frontendowego” - 1+0+1 = 2

Całkowita liczba to 6.

W kolumnach:

  1. Dla „Diba” - 1+1 = 2
  2. Dla „satwik” - 1+0 = 1
  3. Dla „Sravan” - 2+1 = 3

Całkowita liczba to 6.

Przykład 4: Ustaw wartości normalizowane
Teraz tworzymy tabelę awaryjnych dla kolumn „Option2” i „Nazwa”, normalizując wartości.

importować pandy
# Utwórz ramkę danych z 5 kolumnami
mydata = pandy.DataFrame ([[1, „Sravan”, „Technologia chmurowa”, „bazy danych”, 89],
[2, „Sravan”, „Elective 1”, „Frontend Programming”, 98],
[3, „Sravan”, „Elective 1”, „Batabases”, 50],
[5, „satwik”, „php”, „bazy danych”, 99],
[6, „Diba”, „PHP”, „Bazy danych”, 19],
[9, „Diba”, „PHP”, „Programowanie frontendowe”, 54],
],
kolumny = [„Identyfikator egzaminu”, „nazwa”, „opcja 1”, „opcja2”, „Marks”]
)
# Użyjmy funkcji crosstab (), ustawiając parametr normalizacji na indeks.
Częstotliwość = pandy.Crosstab (mydata.Opcja 2, MyData.Nazwa, normalizowanie = „indeks”)
Drukuj (częstotliwość)

Wyjście:

Wyjaśnienie:
Przekazujemy parametr normalizacji i ustawiamy go na „indeks”. Zwraca odsetek każdego zdarzenia.

Całkowita liczba to 6.

  1. W „bazach danych” - dla „Diba” - 1 wśród 4 => znormalizowana wartość wynosi 0.25.
  2. W „bazach danych” - dla „satwik” - 1 wśród 4 => znormalizowana wartość wynosi 0.25.
  3. W „bazach danych” - dla „sravan” - 2 wśród 4 => znormalizowana wartość wynosi 0.5.
  4. W „programowaniu frontendowym” - dla „Diba” - 1 wśród 2 => znormalizowana wartość wynosi 0.50.
  5. W „programowaniu frontendowym” - dla „satwik” - 0 wśród 2 => znormalizowana wartość wynosi 0.00.
  6. W „programowaniu frontendowym” - dla „Sravan” - 1 wśród 2 => znormalizowana wartość wynosi 0.5.

Wniosek

Ten artykuł został napisany, aby dać ci pomysł i sprawić, że zrozumiesz koncepcję obliczania tebulacji krzyżowej do analizy danych. Pandy zapewnia nam wiele przydatnych funkcji. Z tego „Pandy.crosstab () ”to jeden. Wykorzystaliśmy tę metodę w tej nauce, aby obliczyć tebulację krzyżową i rozważaliśmy większość parametrów do demonstracji.