Как легко отобразить столбец данных? - PullRequest
0 голосов
/ 17 апреля 2020

Вот кадр данных 'df':

   id size
0   1   18
1   2   28
2   3   38
3   4   46
4   5   60

Я хочу отобразить 'size' в str на основе правила:

size<25     -> 's'
25<=size<40 -> 'm'
size>=40    -> 'l'

Результат должен быть:

   id size size_str
0   1   18        s
1   2   28        m
2   3   38        m
3   4   46        l
4   5   60        l

Ответы [ 3 ]

2 голосов
/ 17 апреля 2020

с использованием np.select

conditions = [
    df['size'].lt(25),
    df['size'].ge(40)
]

df['size_str'] = np.select(conditions, ['s','1'], default='m')

Результат:

    id  size    size_str
0   1   18      s
1   2   28      m
2   3   38      m
3   4   46      1
4   5   60      1
2 голосов
/ 17 апреля 2020

Вы можете использовать np.where

df['size_str'] = np.where(df['size']<25, 's', np.where(df['size']<40, 'm', 'l'))
1 голос
/ 17 апреля 2020

Что касается читабельности, правильный способ сделать это, вероятно, состоит в том, чтобы определить функцию и затем apply ее в столбец size, например,

def size2str(size):
    if size < 25:
        return 's'
    elif 25 <= size < 40:
        return 'm'
    else:
        return 'l'

df['size_str'] = df['size'].apply(size2str)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...