Je veux résumer les lignes d'un dataframe qui ont la même clé de ligne.
Le but sera de réduire la taille de l'ensemble de données.
Par exemple, si le data frame ressemble à ceci .
df = pd.DataFrame([["Apple", 10], ["Pear", 20], ["Apple", 5], ["Banana", 7], ["Banana", 12], ["Pear", 8], ["Apple", 10]], columns=["Fruit", "Count"])
Je veux que le dataframe final ressemble à ceci.
Fruit Count Apple 25 Pear 28 Banana 19
J'utilise les pandas de Python, numpy, matplotlib et d'autres progiciels d'analyse de données. Existe-t-il un moyen de faire cela en python en utilisant les fonctions de ces packages?
Voici le code pour créer l'exemple de dataframe.
Fruit Count Apple 10 Pear 20 Apple 5 Banana 7 Banana 12 Pear 8 Apple 10
5 Réponses :
Que diriez-vous de groupby
avec sum ()
? Par exemple, df.groupby(['Fruit' Often). >
Fruit
Apple 25
Banana 19
Pear 28
Utilisez groupby
avec as_index = False
et sum
:
>>> df.groupby('Fruit',as_index=False)['Count'].sum() Fruit Count 0 Apple 25 1 Banana 19 2 Pear 28 >>>
Cela devrait être le moyen le plus court d'obtenir ce que vous recherchez:
Fruit Count Apple 25 Banana 19 Pear 28
Résultats:
df.groupby("Fruit").sum()
Oui! c'est aussi simple que
df.groupby("Fruit").sum()
utilisez groupby
avec sum
Fruit Count Apple 25 Banana 19 Pear 28
Outputs
df = df.groupby('Fruit').sum() print(df)
voici un indice, vous devrez utiliser groupe par opération
Regardez dans la fonction pandas
groupby ()
. Il fait précisément cela.Merci, toutes les solutions publiées ont été très utiles!