Замените значения фрейма данных в соответствующих именах столбцов ключами серии

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

У меня есть фрейм данных:

 df = pd.DataFrame(
     [[1, 2, 3, 0, 0], [4, 5, 6, 0, 0]],
     columns=['a', 'b', 'c', 'd', 'e'])
  

и ряд данных:

 s = pd.Series({'d': 7, 'e': 8})
  

что мне нужно заменить значения в df where имена столбцов, совпадающие с ключами в s , т.Е. d и e здесь, на значения из s повторяющихся в каждой df строке. Желаемые результаты:

    a  b  c  d  e
0  1  2  3  7  8
1  4  5  6  7  8
  

Есть ли элегантный способ pandas получить это? Большое спасибо ~

Ответ №1:

Давайте использовать DataFrame.assign :

 df.assign(**s)
  

    a  b  c  d  e
0  1  2  3  7  8
1  4  5  6  7  8