Создание нового столбца фрейма данных на основе правил в Python Pandas
У меня есть CSV-файл, и я пытаюсь решить свою проблему с пандами. Я решил ее с помощью чистого питона, но я не могу сделать это с пандами.
Мой CSV-файл содержит 5 столбцов. Я хочу создать новый, используя данные одного из других. Содержание столбца [0,1,2,3,4,5]. Итак, основываясь на значении, я хочу сделать следующее:
if value == 0:
cost_new_column = 0
elif value == 1:
cost_new_column = 1000
elif value == 2:
cost_new_column = 2500
...
Сделать это в чистом Python, используя for и if просто. Как я могу сделать это в Пандах?
1 ответ:
Я бы построил
dictиз того, как вы хотитеmapзначения и вызовитеmapна колонке, например:In [95]: df = pd.DataFrame({'a':np.random.randint(0, 6, 20)}) df Out[95]: a 0 5 1 3 2 3 3 5 4 5 5 4 6 0 7 5 8 1 9 0 10 5 11 2 12 4 13 5 14 2 15 5 16 0 17 5 18 4 19 4 In [96]: d = dict(zip(range(6), [0,1000,2500,4000,5000,8000])) d Out[96]: {0: 0, 1: 1000, 2: 2500, 3: 4000, 4: 5000, 5: 8000} In [98]: df['new_col'] = df['a'].map(d) df Out[98]: a new_col 0 5 8000 1 3 4000 2 3 4000 3 5 8000 4 5 8000 5 4 5000 6 0 0 7 5 8000 8 1 1000 9 0 0 10 5 8000 11 2 2500 12 4 5000 13 5 8000 14 2 2500 15 5 8000 16 0 0 17 5 8000 18 4 5000 19 4 5000
Comments