Разделите 2 кадра данных с разными именами столбцов pandas - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть 2 кадра данных:

df2: промо-акция ID клиента Промо 1 2440 Промо 2 2594 Промо 3 2091 Промо 4 2100 Промо 5 2775

df3: Стимулирование продаж Общая стоимость пополнения Промо 1 583782.5000 Промо 2 785754.1900 Промо 3 562796.7800 Промо 4 527441.3000 Промо 5 749915.5096

Мне нужно разделить df3 от df2

Я пробовал коды: df4 = df3.reset_index (drop = True ) / df2.reset_index (drop = True) df4.index = df3.index df4

Также: df2v2 = df2.rename (columns = {'Customer ID': 'Общая стоимость пополнения баланса '}) df4 = df3 / df2

Для каждого я получаю таблицу с NaN ...

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 15 февраля 2020

Создать индекс по Sales promotion и DataFrame.set_index в обоих DataFrames, выбрать столбец для Series, поэтому возможно использование Series.div, последнее преобразование серии в 2 столбцы DataFrame на DataFrame.reset_index:

df4=(df3.set_index('Sales promotion')['Total recharge value']
       .div(df2.set_index('Sales promotion')['Customer ID'])
       .reset_index(name='Total recharge value'))
print (df4)
  Sales promotion  Total recharge value
0         Promo 1            239.255123
1         Promo 2            302.912178
2         Promo 3            269.151975
3         Promo 4            251.162524
4         Promo 5            270.239823

Другая версия с rename и DataFrame.div - на один столбец DataFrames:

df4=(df3.set_index('Sales promotion')
        .div(df2.set_index('Sales promotion').rename(columns={'Customer ID':'Total recharge value'}))
        .reset_index())
print (df4)
  Sales promotion  Total recharge value
0         Promo 1            239.255123
1         Promo 2            302.912178
2         Promo 3            269.151975
3         Promo 4            251.162524
4         Promo 5            270.239823
...