Daten mit panda einlesen
Verfasst: Donnerstag 4. Februar 2021, 15:07
Guten Tag,
Ich bin ein Python neuling, habt bitte erbarmen.
ich möchte eine csv einlesen mit 25_000 Zeilen und 1800 Spalten.
In dieser CSV sind:
- nur numerische Werte
- ein paar Zellen in der csv haben jedoch den Wert "#Name?"
- in der csv sind die Zahlen mit einem Komma getrennt und teilweise mit E+ und E-
mein code sieht folgendermaßen aus und funktioniert:
Ich bin ein Python neuling, habt bitte erbarmen.
ich möchte eine csv einlesen mit 25_000 Zeilen und 1800 Spalten.
In dieser CSV sind:
- nur numerische Werte
- ein paar Zellen in der csv haben jedoch den Wert "#Name?"
- in der csv sind die Zahlen mit einem Komma getrennt und teilweise mit E+ und E-
mein code sieht folgendermaßen aus und funktioniert:
Code: Alles auswählen
[/import pandas as pd
#%% Daten einlesen
link = 'xy.csv'
df = pd.read_csv(link,sep=';',engine='python', decimal=",")
#%% String -> Float64 für alle Spalten
zähler=0
for x in df.dtypes[:df.shape[1]]:
if x == object:
for i in range(df.shape[0]):
df.iloc[i,zähler]=df.iloc[i,zähler].replace(',','.')
if df.iloc[i,zähler]=='#NAME?':
df.iloc[i,zähler]='nan'
df[df.columns[zähler]]=df[df.columns[zähler]].astype('float')
zähler+=1]
Jedoch braucht der Code 1 Stunde und 50 minuten, wobei die csv schon in 2min eingelesen wird.
Was kann ich denn verbessern, oder wo kann ich schnellere funktionen einsetzen ?
Vielen Dank im Vorraus !
viele Grüße
Ribon