Ich habe den folgenden Code,Pandas KeyError: Wert nicht im Index
df = pd.read_csv(CsvFileName)
p = df.pivot_table(index=['Hour'], columns='DOW', values='Changes', aggfunc=np.mean).round(0)
p.fillna(0, inplace=True)
p[["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]] = p[["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]].astype(int)
Es war schon immer gearbeitet, bis die CSV-Datei nicht genügend Deckung hat (von allen Wochentagen). Für zB mit der folgenden CSV-Datei,
DOW,Hour,Changes
4Wed,01,237
3Tue,07,2533
1Sun,01,240
3Tue,12,4407
1Sun,09,2204
1Sun,01,240
1Sun,01,241
1Sun,01,241
3Tue,11,662
4Wed,01,4
2Mon,18,4737
1Sun,15,240
2Mon,02,4
6Fri,01,1
1Sun,01,240
2Mon,19,2300
2Mon,19,2532
Ich werde die folgende Fehlermeldung erhalten:
KeyError: "['5Thu' '7Sat'] not in index"
Es scheint eine sehr einfache Lösung zu haben, aber ich bin einfach zu neu in Python zu wissen, wie man es repariert. Bitte helfen Sie. Vielen Dank.
Ist einfach 'p = p.astype (int)' nicht ausreichend? Es ist schwer zu sagen, warum Sie die Spalten so indizieren, die beiden Listen sehen identisch aus und aus Ihren Eingabedaten sieht es nicht so aus, als würden Sie * Spalten auf diese Weise ausschließen. – jedwards
Auch wenn Sie die Spalten, die Sie betrachten, unterteilen (d. H. "['5Thu' '7Sat']' 'ausschließen), werden Sie immer noch auf Fehler stoßen, die 'np.nan' auf ein' int' übertragen. Sie können einen anderen Füllwert (für fehlende Einträge) verwenden, um dieses Problem zu umgehen. – Alex
Schließlich werde ich alle Wochentage im Index benötigen (z. B. '5Thu' '7Sat'), weil ich sie als nächstes plotten werde. Also suche ich nach Möglichkeiten, sie alle hinzuzufügen, ohne die Durchschnittswerte zu beeinflussen. – xpt