Изменить только часть значения для всего столбца в фрейме данных на основе другого фрейма данных - PullRequest
2 голосов
/ 08 марта 2019

Предполагая, что у меня есть кадр данных, подобный следующему:

df1
     Products    Cost
 0     rice        12
 1     beans       15
 2     eggs        17
 3     Tomatoes    5

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

df2
        Header     quantity
 0      Products       2
 1      Cost           1

Что должно дать мне такой результат:

df3
     Products    Cost
 0    riaa        1a
 1    beaaa       1a
 2    egaa        1a
 3    Tomatoaa    NaN

Как следует разрешить этот случай? Я не знаю, работает ли метод "замены"

1 Ответ

2 голосов
/ 08 марта 2019

Используя map, после создания карты dict

d={x:x[:-y]+'a'*y for x, y  in zip(df2.Header,df2.quantity)}
df1.Products=df1.Products.map(d)
df1
Out[863]: 
   Products  Cost
0      riaa    12
1     beaaa     3
2      egaa     2
3  Tomaaaaa    11
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...