Hallo,
aktuell lese ich mit Pandas eine CSV Datei ein, diese kann ich mir als Tabelle anzeigen lassen. Jetzt habe ich folgendes vor, ich möchte gerne zu jeder k-ten Spalte nur die Einträge haben, bei denen in der erste Spalte ein spezielles Stichwort vorhanden ist. Meine Tabelle sieht in etwa so aus:
id,category,val1,val2,val3,...,valN
0,A,103,123,923,...,163
1,A,113,173,128,...,123
2,B,133,123,121,...,193
category kann nun A oder B sein, wohingegen val1 bis valN numerische Werte sind.
Ich möchte mir nun jeweils die Spalten val1 bis val3 histogramieren, wobei ich für jede Spalte dann trennen muss in Kategorie A und B. Die beiden Kategorien einer Spalte sollen aber in einem Histogram dargestellt werden.
Eine Implementierung ganz ohne Pandas habe ich schon mit Listen erfolgreich durchgeführt. Ich habe aber die Hoffnung, dass das mit Pandas vllt, etwas kürzer und effizienter geht. Bisher ist mein Vorgehen:
1.) Lese CSV ein
2.) Split und prüfe für k-te Spalte (val1,..,valN) ob A oder B (Kategorie in zweiter Spalte), wenn A dann füge Element in Teilliste A hinzu, wenn B dann füge Element in Teilliste B hinzu
3.) Für jede Liste in der Teilliste A und B --> Histogram()
Beispiel für Spalte val1:
List_A_1 = [103,113]
List_B_1 = [133]
Histogramm aus List_A_1 und List_B_1 (das eben für jede Spalte)
Falls hier Informationen fehlen, dann kann ich die gerne ergänzen.
Pandas - Zeilen unter Bedingung einer anderen Zeilen/Spalte finden
- __blackjack__
- User
- Beiträge: 13114
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Also falls ich das richtig verstanden habe willst Du Daten aufgrund des Wertes in der Spalte "category" selektieren. Also:
Wie man Daten nach Zeilen und Spalten selektieren kann steht aber auch alles in der Pandas-Dokumentation.
Code: Alles auswählen
In [48]: df
Out[48]:
category val1 val2 val3
id
0 A 103 123 923
1 A 113 173 128
2 B 133 123 121
In [49]: df["category"] == "A"
Out[49]:
id
0 True
1 True
2 False
Name: category, dtype: bool
In [50]: df[df["category"] == "A"]
Out[50]:
category val1 val2 val3
id
0 A 103 123 923
1 A 113 173 128
In [51]: df[df["category"] == "B"]
Out[51]:
category val1 val2 val3
id
2 B 133 123 121
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman