Environnement / conditions d'exécution p> Environnement d'exécution ・ Windows10 Famille 64 bits conditions -Données utilisées: données CSV de 10000 lignes ・ Colonne de données utilisée: index, ID étudiant, scores A-E 5 matières (0-10000) * Sur le modèle d'une liste de notes de 10000 étudiants qui ont passé un certain examen
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)
Il est similaire par écrit à d'autres langues. C'est bien, mais ... Si vous l'implémentez avec DataFrame, vous n'avez besoin que d'une ligne ci-dessous.
df['average'] = (df['subjectA'] + df['subjectB'] + df['subjectC'] + df['subjectD'] + df['subjectE'])/5
Puisque vous pouvez écrire avec l'image d'une opération sur une ligne, il y a moins de risque d'erreurs de codage.
list = sorted(list, key=lambda x: x[7], reverse=True)
En ce qui concerne le tri, la liste peut également être implémentée sur une seule ligne. Si vous implémentez cela avec un DataFrame, vous n'avez besoin que d'une seule ligne.
df.sort_values('average', ascending=False)
list2 = []
for idx, row in enumerate(list):
if 50 <= float(row[7]):
list2.append(row)
Utilisez la boucle for comme vous l'avez fait lors du calcul de la moyenne. Si vous implémentez cela dans un DataFrame ... vous pouvez vous attendre à ce qu'il soit sur une seule ligne.
df2 = df[50 < df['average']]
Nom du processus | 10 fois le temps de trajet moyen(list)[sec] | 10 fois le temps de trajet moyen(DataFrame)[sec] |
---|---|---|
Calcul moyen | 0.764768385887146 | 0.01179955005645752 |
Trier | 0.030899477005004884 | 0.011399650573730468 |
Rétrécir | 0.04529948234558105 | 0.006699275970458984 |
Non seulement le code est simple à implémenter avec DataFrame, mais vous pouvez également voir qu'il est rapide.
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))
Il faut en moyenne 2,33 [s] 10 fois, ce qui est plus lent que celui de la liste. Par conséquent, lorsqu'il s'agit de DataFrame, il est souhaitable de ne pas l'utiliser autant que possible.
Recommended Posts