Ausführungsumgebung / -bedingungen p> Ausführungsumgebung ・ Windows10 Home 64bit Bedingungen -Verwendete Daten: CSV-Daten von 10000 Zeilen ・ Spalte der verwendeten Daten: Index, Studentenausweis, A-E 5-Fächerwerte (0-10000) * Modelliert auf einer Liste von Noten von 10.000 Studenten, die eine bestimmte Prüfung abgelegt haben
for idx, row in enumerate(list):
row.extend('0')
row[7] = str((float(row[2]) + float(row[3]) + float(row[4]) + float(row[5]) + float(row[6]))/5.0)
Es ist schriftlich ähnlich wie in anderen Sprachen. Das ist in Ordnung, aber ... Wenn Sie es mit DataFrame implementieren, benötigen Sie nur eine Zeile darunter.
df['average'] = (df['subjectA'] + df['subjectB'] + df['subjectC'] + df['subjectD'] + df['subjectE'])/5
Da Sie mit dem Bild einer einzeiligen Operation schreiben können, besteht ein geringeres Risiko für Codierungsfehler.
list = sorted(list, key=lambda x: x[7], reverse=True)
Die Liste kann auch in einer Zeile implementiert werden. Wenn Sie dies mit einem DataFrame implementieren, benötigen Sie nur eine Zeile.
df.sort_values('average', ascending=False)
list2 = []
for idx, row in enumerate(list):
if 50 <= float(row[7]):
list2.append(row)
Verwenden Sie die for-Schleife wie bei der Berechnung des Durchschnitts. Wenn Sie dies in einem DataFrame implementieren, können Sie davon ausgehen, dass es sich um eine Zeile handelt.
df2 = df[50 < df['average']]
Vorgangsname | 10 mal durchschnittliche Reisezeit(list)[sec] | 10 mal durchschnittliche Reisezeit(DataFrame)[sec] |
---|---|---|
Durchschnittliche Berechnung | 0.764768385887146 | 0.01179955005645752 |
Sortieren | 0.030899477005004884 | 0.011399650573730468 |
Eingrenzen | 0.04529948234558105 | 0.006699275970458984 |
Der Code ist nicht nur einfach mit DataFrame zu implementieren, sondern Sie können auch feststellen, dass er schnell ist.
for idx in range(len(df)):
df.iat[idx, 6] = str((float(df.iat[idx, 1]) + float(df.iat[idx, 2])
+ float(df.iat[idx, 3]) + float(df.iat[idx, 4]) + float(df.iat[idx, 5])/5.0))
Es dauert durchschnittlich 2,33 [s] 10 Mal, was langsamer ist als das der Liste. Daher ist es beim Umgang mit DataFrame wünschenswert, nicht so viel wie möglich zu verwenden.
Recommended Posts