Разделите все столбцы информационного кадра на меньший по ключу, не объединяя - PullRequest
0 голосов
/ 27 апреля 2020

Я знаю, что это хорошо заданный вопрос, но я ищу его довольно давно и не могу найти ответ.

У меня есть такой набор данных:

ID.  denominator
A     2
B     4
C     5

и еще один такой:

ID.  Value1.   Value2.  Value3.  Value4  ...
A     2.        1.       4        8.     ...
B     4         2        6        0      ...
C     5.        5        7        7      ...

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

Кроме того, наборы данных большие, поэтому я не хочу делать это путем слияния, а затем деления, как в некоторых ответах

Любая помощь приветствуется! Спасибо

Наборы данных:

df1 = pd.DataFrame({
        'ID.':list('abc'),
        'denominator':[2, 4, 5]
})

df2 = pd.DataFrame({
        'ID.':list('abc'),
         'var2':[1,0.5,7],
         'var3':[7,8,9],
         'var1':[1,3,1]
})

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете использовать set_index:

df2.set_index('ID.').div(df1.set_index('ID.')['denominator'], axis=0)
...