J'ai un où la colonne d'index sont des dates. Les autres colonnes représentent les ventes totales de chaque produit pour une journée spécifique. J'ai besoin d'obtenir le total des ventes pour chaque colonne pour l'année 2010.
Je sais comment obtenir la somme totale d'une colonne, mais j'ai du mal à obtenir la somme pour une période / une période donnée.
Les dates de la colonne d'index sont au format suivant 2007-09-22
3 Réponses :
Vous pouvez utiliser votre index de manière assez flexible s'il s'agit d'un index date-heure. Si vous utilisez le dataframe (tel que fourni par @jezrael), vous pouvez faire ce qui suit.
df.groupby (df.index.month) .sum ()
Sortie
Product 1 Product 2 2018 3 6 2019 12 15 2020 21 24 2021 9 10
Ou
df.groupby (df.index.year) .sum () code>
Sortie
Product 1 Product 2 4 18 22 8 12 15 12 15 18
Un simple groupby peut fonctionner pour les agrégats. Si vous souhaitez agréger à l'aide de plusieurs colonnes, recherchez-le dans documentation pour groupby utilisant des pandas.
import pandas as pd data = {'Date': ['2007-09-22', '2007-09-23','2007-09-22'], 'Product 1': [1,2,3], 'Product 2': [4,5,6]} df = pd.DataFrame(data, columns = ['Date','Product 1','Product 2']) df.groupby('Date').sum()
veuillez ajouter l'extrait de code que vous avez effectué jusqu'à présent pour la tâche ci-dessus
Pouvez-vous ajouter un échantillon de données et la sortie attendue? Soyez libre de changer
rng = pd.date_range ('2018-04-03', périodes = 10, freq = '4M') df = pd.DataFrame ({'Product 1': range (10), 'Product 2 ': plage (1, 11)}, rng)