У меня есть такой фрейм данных:
df = pd.DataFrame([{'A': 1, 'B': 'p'}, {'A': 1, 'B': 'q'}, {'A': 2, 'B': 'o'}, {'A': 3, 'B': 'p'}])
df
A B
0 1 p
1 1 q
2 2 o
3 3 p
Я мог бы кодировать и декодировать его правильно с помощью кода.
le = LabelEncoder()
df_encoded = pd.DataFrame(columns=df.columns)
df_decoded = pd.DataFrame(columns=df.columns)
for col in df.columns:
df_encoded[col] = le.fit_transform(df[col])
df_encoded
A B
0 0 1
1 0 2
2 1 0
3 2 1
for col in df.columns:
le = le.fit(df[col])
df_decoded[col] = le.inverse_transform(df_encoded[col])
df_decoded
A B
0 1 p
1 1 q
2 2 o
3 3 p
Теперь, если у меня есть такой кадр данных, как я могу его кодировать и декодировать?
dj = pd.DataFrame([{'A': [1,2], 'B': 'p'}, {'A': 1, 'B': ['p','q']}, {'A': 2, 'B': 'o'}, {'A': 3, 'B': 'p'}])
Я хочу иметь код для каждой ячейки ['p', 'q'] вместо кода для ['p', 'q'].