2017-01-12 3 views

Répondre

0

Votre base de données n'est pas reproductible, vérifiez donc l'erreur. J'ai créé une base de données quelque peu similaire ici.

df = pd.DataFrame({'A': [1,2,10], 'B': [1,5,5], 'C': [2,1,7], 'D': [9,2,4]}) 

Vous pouvez ajouter la colonne E comme ceci:

df['E'] = (df['A']>df['B']) & (df['B']< df['C']) & (df['B']>df['D']) 

Il donne la sortie désirée.

+0

Merci @Vaishali pour la réponse. Pour mon cas, je dois le faire avec une instruction if (pour plus d'analyse). Quand j'ai essayé ceci --- importez des pandas comme pd df = pd.DataFrame ({'A': [1,2,10], 'B': [1,5,5], 'C': [2 , 1,7], 'D': [9,2,4]}) si (df ['A']> df ['B']) & (df ['B'] df [' D ']): df [' E '] =' oui '--- ça me donne ValueError: La valeur de vérité d'une série est ambiguë. Utilisez a.empty, a.bool(), a.item(), a.any() ou a.all(). Aucune suggestion? –

+0

La solution est une instruction conditionnelle sans utiliser if. L'erreur de valeur que vous obtenez est parce que df ['E'] est une série pandas et vous ne pouvez pas assigner une valeur à la série – Vaishali

+0

Si vous devez utiliser explicitement if, voici la solution, mais je ne le recommanderais pas: E = [] pour i dans l'intervalle (len (df)): si ((df ['A'] [i]> df ['B'] [i]) & (df ['B'] [i ] df ['D'] [i])): E.append ('Oui') sinon: E .append ('No') – Vaishali