J'ai un Dataframe, montré ici.
Je souhaite créer une nouvelle colonne appelée Résultat doit être créé en fonction des règles suivantes. p> mon fichier de données résultant aimerait ceci: p> < img src = "https://i.stack.imgur.com/4o3tm.png" alt = "Entrez la description de l'image ici"> p> résultat code> < / p>
D, F, M, P CODE> LI>
ig code> et
hy code>, retour
hy code>. li>.
nan code> comme valeur. li>
ol>
3 Réponses :
Une solution possible est la suivante. Peut-être que ce n'est pas le plus élégant mais ça marche. Il n'y a qu'un seul problème, si dans une ligne, vous avez tous Nan, vous obtiendrez "HY" pour cette ligne.
import numpy as np import pandas as pd df_start = pd.DataFrame({'P':['IG','HY','IG',np.nan,'HY'], 'M':['HY','HY','IG', np.nan,'IG'], 'F':['HY',np.nan,'HY', np.nan,'IG'],'D':['IG','IG','IG', 'HY','IG']}) def count_winner(words): igc=0 hyc=0 for i in words: if(i=="IG"): igc+=1 elif(i=="HY"): hyc+=1 if(igc<=hyc): return("HY") else: return("IG") words=df_start.to_string(header=False, index=False, index_names=False).split('\n') words=[i.split(" ") for i in words] winners=[count_winner(i) for i in words] df_start["Result"]=winners
Utiliser sortie: p> mode code>:
Si vous vouliez compter chacune des valeurs UNIQUES dans la trame de données et déterminer lequel survient le plus souvent, vous pouvez utiliser le code ci-dessous. P>
Travailler à partir de votre cadre de données de départ donné, les valeurs NAN sont converties en cordes afin qu'elles puissent être comparées. Ensuite, la méthode NUMPY pour la recherche de valeurs uniques est utilisée sur le cadre de données. Ces valeurs sont ensuite utilisées pour créer une nouvelle colonne pour chaque valeur unique avec le nombre de cette valeur dans la ligne. P>
La seconde pour la boucle passe par les lignes de la nouvelle DF en trouvant le maximum de chaque ligne et comparant le nom de cette colonne à la liste des valeurs uniques. p>
Ce n'est pas Aussi élégant que la solution de @ Scott, mais il ajoute une certaine capacité si vous voulez faire quelque chose avec le nombre d'occurrences de chacun. P>
Il n'aborde pas non plus la sélection hy code> sur
ig code>, mais cela ne peut pas être fait par programme sans connaître la logique derrière elle. p> h1>
Pouvez-vous poster des données de données en format textuel, plutôt que des images? Copiez-le simplement et collez-le ici.
Bonjour Bienvenue sur So. Veuillez consulter MCVE et Comment-demander
J'ai posté l'extrait de code
Pourquoi retourner
hy code> sur
ig code>? Quelle est la logique là-bas?