У меня следующая простая проблема, представьте, что у меня есть следующий фрейм данных:
df = pd.DataFrame({'A': ['foo', 1, 2, 3, 4],
'B': [5, 'dude', 7, 8, 9],
'C': ['5', '5', 'dude', '5', '5']})
print(df)
A B C
0 foo 5 5
1 1 dude 5
2 2 7 dude
3 3 8 5
4 4 9 5
Теперь я хочу заменить значения ['foo','dude','dude']
в столбцах A, B и C соответственно своими уникальными значениями. Я смог сделать это, используя функцию панды replace
.
df['A'] = df['A'].replace('foo', value = 68 ).astype(float)
df['B'] = df['B'].replace('dude', value = 46).astype(float)
df['C'] = df['C'].replace('dude', value = 86).astype(float)
Это работает, но я знаю, что ранее во многих кодах, которые я написал, был гораздо более простой и эффективный способ решения подобных проблем. У меня есть интуитивное чувство, что есть лучший способ сделать это, однако я не уверен, что это может быть.
Вот что я попробовал.
dict1={'A':{'foo':68},'B':{'dude': 46}, 'C':{'dude':86}}
dfclean = df.replace(dict1)
но безрезультатно. Это самый эффективный способ заменить их каждой своей линией?
EDIT:
Ух ты, я полный идиот ... Решение, которое я написал выше, на самом деле работает, я просто печатал df, а не dfclean. Благодаря.