J'ai un fichier de données comme ci-dessous: J'ai une liste: p> J'ai besoin de mapper la combinaison de col1 et col2 à l'indexation de la liste telle que 1 et 5 est mappé sur B et F. Le Dataframe final dont j'ai besoin est la suivante: p> J'ai essayé de générer toutes les paires possibles de la liste à l'aide de iTERTOOLS.COMBINATIONS CODE>, puis mappé sur le Dataframe Pandas . Mais cela ne fonctionne que pour une petite liste. Ma liste actuelle contient> 5000 articles et donc je reçois une erreur de mémoire si j'utilise itoTools. S'il vous plaît laissez-moi savoir s'il y a une meilleure solution à cela. P> p>
3 Réponses :
Utiliser énumérer code> avec mappe code>
Utilisation de ApplyMap CODE>: import pandas as pd
df = pd.DataFrame({"col1":[1,2,3,4], "col2":[5,6,7,8]})
ls = ["a", "b", "c", "d", "e", "f", "g", "h", "ij"]
df[["item1","item2"]] = df.applymap(lambda x: ls[x])
print (df)
#
col1 col2 item1 item2
0 1 5 b f
1 2 6 c g
2 3 7 d h
3 4 8 e ij
df.applymap (ls .__ getItem __) code>
convertir la liste ls code> à une matrice numpie et simplement index de fantaisie et attribuer aux colonnes