Comment utiliser les pandas factorize
avec des valeurs qui existent sur deux colonnes? Plus précisément, j'essaie de convertir des valeurs qui existent dans deux colonnes en valeurs numériques, et de mettre les valeurs factorisées correspondantes dans de nouvelles colonnes, de sorte que la factorisation soit cohérente avec les deux colonnes d'entrée «A» et «B».Factoriser des valeurs sur des colonnes de données avec des mappages cohérents
existant dataframe:
A B
0 a b
1 c a
2 d a
3 e c
4 c b
5 b e
6 e f
souhaité Sortie:
A B A_ID B_ID
0 a b 0 4
1 c a 1 0
2 d a 2 0
3 e c 3 1
4 c b 1 4
5 b e 4 3
6 e f 3 5
Je suis en mesure d'utiliser factorize
avec succès pour une colonne en utilisant:
df['A_ID'] = pd.factorize(df.A)[0]
Comment pourrais-je accomplir cela avec cohérence mappages pour les valeurs sur deux colonnes? Ai-je besoin d'utiliser une fonction personnalisée lambda
à la place, ou y a-t-il un moyen d'accomplir ceci avec factorize
?
J'aime l'utilisation du remodelage numpy dans cette solution.+1 –
@ScottBoston Retourné avec intérêt :-) –
Vous pourriez faire 'df.values.ravel ('F')' inplace de 'df.values.T.reshape (-1,)' aussi – Zero