#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Я хотел бы закодировать значения строк выбранного столбца в pandas.
Например, давайте предположим, что у меня есть следующий фрейм данных
Col_A Col_B
0 SV NT
1 NT P
2 SV I
3 P SV
4 I P
У меня есть словарь, содержащий значения encode для каждой строки столбца, как показано ниже
encode_values = {
"Col_A" : {"NT": 1, "SV": 0, "P": 1, "I": 0},
"Col_B": {"NT": 10, "SV": 0, "P": 10, "I": 0}
}
Мне нужен новый фрейм данных с пользовательскими кодировками для каждого из этих столбцов
Результат: —
Col_A Col_B
0 0 10
1 1 10
2 0 0
3 1 0
4 0 10
Ответ №1:
Вы можете apply
и map
использовать имена столбцов:
print (df.apply(lambda d: d.map(encode_values[d.name])))
Col_A Col_B
0 0 10
1 1 10
2 0 0
3 1 0
4 0 10
Ответ №2:
Попробуйте replace
использовать dictionary в качестве параметра, применить отдельно к каждой серии в df:
df.Col_A = df.Col_A.replace (encode_values['Col_A'])
df.Col_B = df.Col_B.replace (encode_values['Col_B'])