Je suis nouveau sur les pandas et matplotlib. J'ai un fichier csv qui comprend l'année de 2012 à 2018. Pour chaque mois de l'année, j'ai des données de pluie. Je veux analyser par l'histogramme, quel mois de l'année a le maximum de précipitations. Voici mon ensemble de données.
import pandas as pd
import numpy as npy
import matplotlib.pyplot as plt
df2=pd.read_csv('Monthly.csv')
df2.groupby(['year','month'])['Rain'].count().plot(kind="bar",figsize=(20,10))
Je n'ai pas pu tracer avec l'histogramme, j'ai essayé de tracer avec la barre mais sans obtenir le résultat souhaité. Voici ce que j'ai essayé:
year month Temp Rain 2012 1 10 100 2012 2 20 200 2012 3 30 300 .. .. .. .. 2012 12 40 400 2013 1 50 300 2013 2 60 200 .. .. .. .. 2018 12 70 400
Veuillez me suggérer une approche pour tracer un histogramme pour analyser les précipitations maximales au cours de quel mois regroupées par année.
3 Réponses :
vous êtes fermé à la solution, j'écrirai: utilisez max () et non count ()
df2.groupby(['year','month'])['Rain'].max().plot(kind="bar",figsize=(20,10))
Vous ne voulez probablement pas voir le ou peut-être p> compter code> par groupe mais
une autre option: fig, ax = plt.subplots (figsize = (8,6)); df.groupby (['year', 'month']). sum () ['Rain']. unstack (). plot (ki nd = 'bar', ax = ax) selon la façon dont vous veulent que le graphique ressemble.
Premier groupe par année et par mois comme vous l'avez déjà fait, mais ne gardez que le maximum de précipitations.
series_df2.unstack().T.plot(kind='bar', subplots=False, layout=(2,2))
Ensuite, décompressez la série, transposez-la et tracez-la.
series_df2 = df2.groupby(['year','month'], sort=False)['Rain'].max()
Cela vous donnera une sortie qui ressemble à ceci pour vos exemples de données:
veuillez ne pas utiliser d'images pour vos données. Copiez et collez vos exemples de données afin que nous puissions les copier.
@Chris, merci pour votre suggestion. Je l'ai mis à jour.