Ich habe ein Problem mit einer CSV-Datei, wo ich einige Informationen benötigen. Im Folgenden ist das, was ich tun muss:CSV: Zählen einer Zeichenfolge in einer Spalte, wenn eine andere Spalte einen bestimmten Wert hat
Ich habe eine CSV-Datei, die wie folgt bestellt:
bla country bla bla value
Germany Y
Germany Y
Germany N
Denmark N
Denmark N
Denmark Y
Nun, was ich mit Python tun möchte, ist in der gleichen jedes Mal der Y-Wert zu zählen Säule. Am Ende bekomme ich so etwas wie Deutschland: 2 Dänemark: 1.
aber ich habe nur in der Lage gewesen, um herauszufinden, wie die Spalten zu zählen, mit dem folgenden Code:
import csv
from collections import Counter, defaultdict
from itertools import imap
from operator import itemgetter
header_counter = defaultdict(Counter)
with open('airlines.csv') as input_file:
r = csv.reader(input_file, delimiter=',')
headers = next(r)
for row in r:
row_val = sum([w.isdigit() for w in row])
for header, val in zip(headers, row):
if not any(map(str.isdigit, val)):
header_counter[header].update({val: row_val})
for k, v in header_counter.iteritems():
print k, v
Ich denke, Donut der obige Code von großem Nutzen für jeden ist aber, wie es nur die Zeilen zählt pro Spalten und filtert ganze Zahlen heraus. Jede Hilfe, die ich bekommen kann, ist sehr geschätzt, ich bin immer noch ziemlich unerfahren.
Vielen Dank! Ich wählte es jedoch als beste Antwort, weil ich es einfach kopieren konnte. Ich bin ein bisschen Anfänger, wenn es darum geht, also war es sehr hilfreich, aber ich möchte immer noch wissen, wo ich ein Tutorial finden kann, wie ich damit arbeite, weil ich das wahrscheinlich öfter machen werde. Ich verstehe, was dein Code macht, aber ich weiß nicht wirklich, wie ich es selbst schreiben soll. – cinderashes