2017-10-05 7 views
1

J'utilise Pandas pour analyser mes données. J'ai cette base de données composée elapsed_seconds et m (magnitude). Y a-t-il un moyen pour moi de grouper par les cinq chiffres du nombre flottant (elapsed_seconds) et de trouver la moyenne de m?Pandas filtrant le point flottant en chiffres

Exemple:

elapsed_seconds,m 
10769.001,0.373637934043 
10769.027,0.373403294813 
10769.041,0.373069383556 
10769.061,0.391354911476 
10769.081,0.381280413801 

Ce que j'ai besoin est:

elapsed_seconds,m 
10769,0.3785491875378 

0,3785491875378 est la moyenne des 0.373637934043,0.373403294813,0.373069383556,0.391354911476 et ,381280413801

J'apprécierai tous les commentaires et commentaires . Je vous remercie.

Répondre

1

Vous pouvez convertir float colonne int puis groupby et agrégats mean:

df = df.groupby(df['elapsed_seconds'].astype(int))['m'].mean().reset_index() 
print (df) 
    elapsed_seconds   m 
0   10769 0.378549 
+0

Merci @jezrael de monsieur. Exactement ce dont j'ai besoin. – user2995019