Regrouper CSV et obtenir la valeur minimale (pandas)

Contenu de cet article

Préface

Dans le cadre de mes recherches de fin d'études, j'ai dû traiter un fichier csv raisonnablement volumineux. Plus précisément, le travail de regroupement des lignes en fonction de la valeur de la colonne id et l'acquisition de la ligne avec la plus petite colonne de distance dans chaque groupe. La méthode utilisée à ce moment-là est décrite ci-dessous.

Sujet principal

Le code est comme suit.

import pandas as pd

data = pd.read_csv("Chemin vers le fichier de données d'origine")
df = pd.DataFrame(columns=data.columns)
###Ce sera le fichier de sortie final. Le nom de la colonne est le même que celui des données et il est vide à ce stade.

dic = {}

for name,group in data.groupby('id'):
   dic[name] = group

list = dic['id'].unique()

for i in list:
   k = dic[i]
   l = k['distance'].idxmin()
   m = data.iloc[l:l+1,:]
   df = df.append(m)

df.to_csv("Le chemin du répertoire que vous souhaitez enregistrer")

Je pense qu'il y a un code plus concis ... Il est utile dans de nombreuses situations, telles que la création d'un DataFrame qui hérite des noms de colonne des données d'origine et l'obtention du numéro de ligne qui minimise la valeur d'une certaine colonne.

Recommended Posts

Regrouper CSV et obtenir la valeur minimale (pandas)
[pandas] Méthode de lecture et d'affichage des fichiers .csv
Chargez CSV avec des pandas et jouez avec Index
Lisez CSV et analysez avec Pandas et Seaborn
Pandas de valeur manquante
Extraire la valeur maximale avec les pandas et modifier cette valeur
installation de jupyter et pandas
index et réindexation des pandas
Lire le fichier CSV: pandas
pandas rééchantillonner et rouler
Moyenne et liste des pandas