J'ai un dataframe Pandas avec les colonnes suivantesMRR en Python Pandas dataframe
date | months | price
Je calcule certains paramètres de base BI. J'ai fait le revenu net en regroupant les dataframe à la date et la somme du prix:
df = df[["Date", "Price"]].groupby(df['Date'])["Price"].sum().reset_index()
Maintenant, je veux trouver le MRR, qui est semblable au revenu net, mais au cas où les mois de colonne ont plus que 1 mois, le prix devrait être "déplacé" également aux mois suivants. Et aussi, il est groupé par mois et non par jour. Par exemple, si je suis en janvier 2016 et que j'ai une rangée avec 3 mois et un prix de 30 $, je devrais ajouter 10 $ à janvier, 10 $ à février et 10 $ à mars.
Ma première idée était de parcourir la base de données, de garder une trace des mois et du montant du prix que je devrais "déplacer" les mois suivants et de créer une nouvelle base de données manuellement.
Mais, d'abord, y a-t-il un moyen Python pour les Pandas de le faire?
données pour reproduire un dataframe:
import pandas as pd
df = pd.DataFrame({'date': ['01-01-2016', '05-01-2016', '10-01-2016','04-02-2016'],
'months': [1, 3, 1, 6],
'price': [40, 60, 20, 60]})
Résultat souhaité:
Date | MRR
January 2016 | 80
February 2016| 30
March 2016 | 10
April 2016 | 10
May 2016 | 10
June 2016 | 10
July 2016 | 10
Et les résultats calculés comme celui-ci pour chaque ligne
January 2016 = 40 + 20 + 20 + 0
February 2016 = 0 + 20 + 0 + 10
March 2016 = 0 + 0 + 0 + 10
April 2016 = 0 + 0 + 0 + 10
May 2016 = 0 + 0 + 0 + 10
June 2016 = 0 + 0 + 0 + 10
July 2016 = 0 + 0 + 0 + 10
vous pouvez faire cette question encore mieux en fournissant des données de jouets. Cela aide les gens à essayer rapidement leurs réponses avant de les poster. –
S'il vous plaît vérifier [Comment faire de bons exemples de pandas reproductibles] (http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) – jezrael
Merci à tous les deux, j'ai ajouté quelques données et si ceux-ci ne fonctionne plus, j'ajouterai plus. – Tasos