Ich habe mehrere Arbeitsblätter einer Excel-Datei (> 15 MB) gelesen, wo jedes Blatt> 10000 Spalten hat. Ich wähle eine einzelne Spalte (besteht nur aus ganzen Zahlen), lösche alle Werte == 0 aus dieser Spalte und schreibe diese Spalte in eine neue df2. Zusätzlich berechne ich die Beschreibungsstatistik.Schnellste Möglichkeit, Nullen aus einer Pandas-Serie zu entfernen
Daten sieht wie folgt aus:
Gel.Menge Erf.datum Freig.
0 0.0 26.11.2014 26.11.2014
1 10.0 06.11.2014 07.11.2014
2 5.0 19.12.2014 08.01.2015
3 7.0 07.07.2015 17.07.2015
4 0.0 21.07.2015 22.07.2015
5 5.0 18.03.2016 22.03.2016
6 10.0 29.03.2016 31.03.2016
7 0.0 20.07.2016 21.07.2016
8 20.0 13.10.2016 17.10.2016
9 0.0 01.12.2014 01.12.2014
10 0.0 20.04.2015 20.04.2015
Der Code, den ich verwenden ist:
inpath=r"P:\Data.xlsx"
df1=pd.DataFrame()
for i in ["67059070","67059075","67060055","Screwing Total"]:
df=pd.read_excel(io=inpath,header=0,sheetname="{0}".format(i))
df1["Gel.Menge"]=df["Gel.Menge"].where(df["Gel.Menge"]!=0).dropna()
print(np.round(df1.mode()))
print(np.round(df1.describe())
Leider ist dieser Code super langsam ... gibt es einen schnelleren Weg, dies zu erreichen?
Genug 'df zu tun [df [ "Gel.Menge"]! = 0]' –
Oder 'df.query ("Gel.Menge! = 0") ', oder' df [df.eval ("Gel.Menge! = 0")] ' –
Ich vermisse die Beispieldaten. Alle obigen Kommentare würden eine gute Antwort geben. – Dark