3
votes

Python additionnant les lignes dans Dataframe avec la même clé

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


3 commentaires

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!


5 Réponses :


4
votes

Que diriez-vous de groupby avec sum () ? Par exemple, df.groupby(['Fruit' Often). >

Fruit
Apple     25
Banana    19
Pear      28


0 commentaires

4
votes

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
>>> 


0 commentaires

2
votes

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()


0 commentaires

2
votes

Oui! c'est aussi simple que

df.groupby("Fruit").sum()


0 commentaires

1
votes

utilisez groupby avec sum

Fruit      Count     
Apple      25
Banana     19
Pear       28

Outputs

df = df.groupby('Fruit').sum()
print(df)


0 commentaires