import pandas as pd
df = pd.DataFrame([[1,2,3],[1,5,9],[2,1,5],[9,2,8]], index = [1,2,3], columns = ['A','B','C', 'D'])
Disons que j'ai une base de données comme df. Je veux comparer toutes les lignes en df pour si df ['A']> df ['B'] et df ['B'] < df ['C'] et df ['B']> df [' D '], alors si vrai df [' E '] =' oui 'ou' non 'pour faux. merci beaucoupVérification des colonnes de données (rangée par ligne) pour plusieurs conditions si
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? –
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
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