En mi conjunto de datos tengo dos columnas categóricas que me gustaría numerar. Las dos columnas contienen países, algunos se superponen (aparecen en ambas columnas). Me gustaría dar el mismo número en la columna 1 y la columna 2 para el mismo país.
Mis datos se parecen a:
import pandas as pd
d = {'col1': ['NL', 'BE', 'FR', 'BE'], 'col2': ['BE', 'NL', 'ES', 'ES']}
df = pd.DataFrame(data=d)
df
Actualmente estoy transformando los datos como:
from sklearn.preprocessing import LabelEncoder
df.apply(LabelEncoder().fit_transform)
Sin embargo, esto no hace distinción entre FR y ES. ¿Hay otra forma simple de llegar a la siguiente salida?
o = {'col1': [2,0,1,0], 'col2': [0,2,4,4]}
output = pd.DataFrame(data=o)
output