je l'df suivante:python pandas géants: valeur de recherche dans une colonne conditionnée autre colonne
Customer | transaction_id | medium | first_transaction_flag
ABC 12345 organic Y
ABC 23456 email 0
ABC 34567 organic 0
BCD 45678 organic 0
BCD 56789 referral 0
je besoin d'ajouter une colonne avec le premier support réel. Ceci est le produit final Je cherche:
Customer | transaction_id | medium | first_transaction_flag | first_medium
ABC 12345 organic Y organic
ABC 23456 email 0 organic
ABC 34567 organic 0 organic
BCD 45678 organic 0 0
BCD 56789 referral 0 0
Fondamentalement, quelle que soit la valeur de la colonne « moyenne » pour une transaction qui a « first_transaction_flag » = Y, copiez cette valeur pour toutes les transactions pour ce client la colonne "first_medium".
Je pense que je suis vraiment proche de la résoudre avec l'aide de l'une des réponses précédentes de @piSquared.
df['first_medium'] = df.lookup(df.Customer, df.medium)
Mais pas sûr de savoir comment combiner cela avec une déclaration np.where pour first_transaction_flag == « Y »
Alors désolé si cela a été demandé avant, je ne pouvais pas trouver
merci! Je reçois une erreur de syntaxe à propos de] devant .set_index; quand j'essaie d'en ajouter un autre [à l'avant, il me dit "trop de valeurs à déballer" – jeangelj
merci - la première déclaration fonctionne maintenant; pour la deuxième déclaration je reçois le ValueError: Longueur des valeurs ne correspond pas à la longueur de l'index – jeangelj
argh, a oublié de faire une série plutôt que d'une base de données, fixe (et double cette fois, cela devrait fonctionner!) – IanS