J'ai une table en CSV comme ceci: CSV de base Et j'ai besoin de le grouper comme ceci: Dans tous mes CONCURSO, seuls les changements CIDADE et UF. Attendu CSV J'essaye ce code mais cela ne fonctionne pas. Pouvez-vous les gars ...
1 réponse
La méthode agg()
de Pandas peut prendre un dictionnaire pour le paramètre func
. Ce dict mappe la colonne et sa fonction d'agrégation.
Je suppose que vous pouvez alors faire ce qui suit:
columns_to_aggregate = ["Cidade", "UF"]
columns_for_groupby = ["Concurso"]
columns = list(set(new_df.columns).difference(columns_for_groupby))
aggregation_func = {c: (lambda x: ", ".join(map(str, x))) if c in columns_to_aggregate else "min" for c in columns}
new_df = new_df.groupby(by=columns_for_groupby, as_index=False).agg(aggregation_func)
new_df.to_csv(fr'C:\Users\anton\Desktop\Anon\data\lake\{date}\tratado.csv', index=False)
Dites-moi si cela ne fonctionne pas :)
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.