Création efficace de colonnes supplémentaires dans un pandas DataFrame à l'aide de .map ()
Je suis d'analyser un ensemble de données qui est de forme similaire à l'exemple suivant. J'ai deux différents types de données (abc de données et xyz de données):
abc1 abc2 abc3 xyz1 xyz2 xyz3
0 1 2 2 2 1 2
1 2 1 1 2 1 1
2 2 2 1 2 2 2
3 1 2 1 1 1 1
4 1 1 2 1 2 1
Je veux créer une fonction qui ajoute une catégorisation de la colonne pour chaque abc colonne qui existe dans le dataframe. À l'aide de listes de noms de colonne et une catégorie de cartographie dictionnaire, j'ai pu obtenir mon résultat souhaité.
abc_columns = ['abc1', 'abc2', 'abc3']
xyz_columns = ['xyz1', 'xyz2', 'xyz3']
abc_category_columns = ['abc1_category', 'abc2_category', 'abc3_category']
categories = {1: 'Good', 2: 'Bad', 3: 'Ugly'}
for i in range(len(abc_category_columns)):
df3[abc_category_columns[i]] = df3[abc_columns[i]].map(categories)
print df3
Le résultat final:
abc1 abc2 abc3 xyz1 xyz2 xyz3 abc1_category abc2_category abc3_category
0 1 2 2 2 1 2 Good Bad Bad
1 2 1 1 2 1 1 Bad Good Good
2 2 2 1 2 2 2 Bad Bad Good
3 1 2 1 1 1 1 Good Bad Good
4 1 1 2 1 2 1 Good Good Bad
Tandis que le for
boucle à l'extrémité fonctionne très bien, je me sens comme je devrais être à l'aide de Python lambda
de la fonction, mais n'arrive pas à le comprendre.
Est-il un moyen plus efficace de la carte dans un nombre dynamique de abcles colonnes de type?
source d'informationauteur Daniel Romero
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
applymap
avec le dictionnaireget
méthode:Et mettez-le de colonnes spécifiées:
Remarque: vous pouvez construire
abc_columns
de façon relativement efficace à l'aide d'une compréhension de liste: