векторизованный подход для создания нового столбца в кадре данных pandas со значением из другого столбца, но не той же строки - PullRequest
1 голос
/ 09 июля 2019

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

Я реализовал это с помощью вложенного цикла for, но для большого набора данных это занимает много времени.Так есть ли какие-то встроенные функции для использования свойств панд?столбец b должен быть скопирован в новый столбец, пока не встретится новый экземпляр m.И значение обновляется.Таким образом, результат должен выглядеть следующим образом:

    a     b     c
32  m   1.5   1.5
33  n   1.6   1.5
34  o   1.7   1.5
35  m   1.8   1.8
36  n   2.2   1.8
37  m   2.4   2.4
38  n   2.9   2.4
39  o   2.1   2.4
40  p   1.5   2.4

1 Ответ

0 голосов
/ 09 июля 2019

Используйте Series.where для замены несоответствующих значений, протестированных Series.eq для == с пропущенными значениями прямого заполнения на ffill:

df['c'] = df['b'].where(df['a'].eq('m')).ffill()
print (df)
    a    b    c
32  m  1.5  1.5
33  n  1.6  1.5
34  o  1.7  1.5
35  m  1.8  1.8
36  n  2.2  1.8
37  m  2.4  2.4
38  n  2.9  2.4
39  o  2.1  2.4
40  p  1.5  2.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...