Pandas CSV-Datei bestimmte Zeile auslesen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
JPL
User
Beiträge: 1
Registriert: Sonntag 2. Juli 2023, 14:16

Hallo,
ich habe eine CSV-Datei aus der ich die Werte einer bestimmten Zeile auslesen möchte.
Und auch nur ausgewählte Spalten sollen ausgegeben werden.
Mit pandas habe ich bisher folgendes erreicht:
import pandas as pd

df = pd.read_csv("StatRR_KOSTRA-DWD-2020_D00005.csv",
header=0,
sep=";",
decimal=",",
usecols=["INDEX_RC","RN_001A", "RN_002A"]
)
df.to_csv("daten")
print(df)

INDEX_RC RN_001A RN_002A
0 0 -99.9 -99.9
1 1 -99.9 -99.9
2 2 -99.9 -99.9
3 3 -99.9 -99.9
4 4 -99.9 -99.9
... ... ... ...
89995 299295 -99.9 -99.9
89996 299296 -99.9 -99.9
89997 299297 -99.9 -99.9
89998 299298 -99.9 -99.9
89999 299299 -99.9 -99.9

Wie zu sehen ist, enspricht die Anzahl der Zeilen nicht dem Wert in der Spalte INDEX_RC.
Gerne möchte ich, dass ich die Werte aus der Zeile mit INDEX_RC = 137196 ausließt.
Dafür habe ich folgendes getan:

import pandas as pd

df = pd.read_csv("StatRR_KOSTRA-DWD-2020_D00005.csv",
header=0,
sep=";",
decimal=",",
usecols=["INDEX_RC","RN_001A", "RN_002A"],
index_col="INDEX_RC"
)
df=df.loc["137196"]
df.to_csv("daten")
print(df)

als Fehler erhalte ich nun:
Traceback (most recent call last):
File "D:\all my data\Python Projects\kostra_2020\Test_Skript\Import CSV.py", line 10, in <module>
df=df.loc["137196"]
~~~~~~^^^^^^^^^^
und
KeyError: '137196'

wo liegt der Fehler genau? Bin für jeden Hinweis dankbar :D
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Damit ein `loc[]`-Zugriff funktioniert muss INDEX_RC auch tatsächlich der *Index* von dem Dataframe sein. Das kann man gleich beim einlesen schon erledigen, mit dem passenden Argument. Und dann sind das ja Zahlen und keine Zeichenketten, sofern sich in der INDEX_RC-Spalte nicht etwas überraschendes versteckt, was wir nicht kennen. Ansonsten kann man auch nach Kriterien in den normalen Spalten Untermengen aus dem DataFrame selektieren. Pandas hat da eine sehr gute, umfangreiche Dokumentation: https://pandas.pydata.org/docs/
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten