J'ai cherché SO et n'ai pas encore compris. En espérant que quelqu'un puisse aider ce python newb à résoudre mon problème.Pandas si/alors l'agrégation
J'essaie de comprendre comment écrire une instruction if/then en python et effectuer une agrégation de cette instruction if/then. Mon objectif final est de dire si la date = 1/7/2017 puis d'utiliser la valeur dans la colonne "faux". Si date = tout le reste, alors faites la moyenne des deux colonnes ensemble.
Voici ce que j'ai jusqu'à présent:
import pandas as pd
import numpy as np
import datetime
np.random.seed(42)
dte=pd.date_range(start=datetime.date(2017,1,1), end= datetime.date(2017,1,15))
fake=np.random.randint(15,100, size=15)
fake2=np.random.randint(300,1000,size=15)
so_df=pd.DataFrame({'date':dte,
'fake':fake,
'fake2':fake2})
so_df['avg']= so_df[['fake','fake2']].mean(axis=1)
so_df.head()
Merci! Ce sont tous deux super utiles. Si je voulais faire plus de 1 date à savoir 1/7,1/9 et 1/11 je pourrais simplement l'écrire comme 'so_df ['faux']. Où ((so_df ['date'] == '20170107 ') ou (so_df [' date '] ==' 20170105 ') ou (so_df [' date '] ==' 20170111 '), so_df [[' faux ',' fake2 ']]. mean (axe = 1)) ' –
@ P.Cummings Malheureusement, vous ne pouvez pas utiliser' ou' pour les structures de données pandas. Vous devez utiliser la version surchargée de bitwise ou ('|'). J'ai ajouté quelques exemples au poste. – ayhan
Merci. C'est très utile! –