Есть ли способ заполнить столбец, если значения другого столбца попадают в диапазон чисел в python? - PullRequest
1 голос
/ 05 мая 2019

Я работаю над таблицей данных, и мне нужно создать новый столбец, в зависимости от того, в какой класс входит значение другого столбца.

Это оригинальная таблица:

ID  sequence
AJ8    2
FT7    3
JU4    5
ER2    3
LI5    2
FR2    7
WS1    8
UG4    9

Диапазоны 2, 3, 4, 6: первый; 1,5,0: секунда; и 7,8,9: третье.

Я создал переменные

first  = ['2', '3', '4', '6']
second = ['1', '5', '0']
third  = ['7', '8', '9']

Я хочу получить следующую таблицу

ID  sequence    code
AJ8    2        FIRST
FT7    3        FIRST
JU4    5        SECOND
ER2    3        FIRST
LI5    2        FIRST
FR2    7        THIRD
WS1    8        THIRD
UG4    9        THIRD

Как мне это сделать?

1 Ответ

1 голос
/ 05 мая 2019

Я бы создал функцию, которая условно возвращает желаемое значение.

import pandas as pd

keys = ['AJ8', 'FT7', 'JU4', 'ER2', 'LI5', 'FR2', 'WS1', 'UG4']
values = [2, 3, 5, 3, 2, 7, 8, 9]

df = pd.DataFrame(list(zip(keys, values)), columns =['key', 'value'])

def get_new_column(df):
    if df['value'] in [2, 3, 4, 6]:
        return 'first'
    elif df['value'] in [1, 5, 0]:
        return 'second'
    elif df['value'] in [7, 8, 9]:
        return 'third'
    else:
        return ''

df['new'] = df.apply(get_new_column, axis=1)
print(df)

Вывод:

   key  value     new
0  AJ8      2   first
1  FT7      3   first
2  JU4      5  second
3  ER2      3   first
4  LI5      2   first
5  FR2      7   third
6  WS1      8   third
7  UG4      9   third

Вот еще примеров .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...