Мне нужно вывести ожидаемый выше df3 путем слияния df & df1, и требуется статистика ниже:
Указано, что следует отметить при объединении: если значение отсутствует в «Desc1», следует выбрать значение из«Desc2»
- Каждое имя карты и кросс-таблица каждой категории и процент от суммы, потраченной на каждую категорию.(т. е. сумма суммы каждой категории / общая сумма суммы для каждого имени карты
- 2 верхние категории каждого имени карты в зависимости от потраченной суммы (все это должно быть сгруппировано по карте). Может помочь pls?Также предложите, какую дополнительную статистику мы можем получить из df3?
У меня есть 2 DF, как показано ниже:
df = pd.DataFrame({"Customer_no": ['1', '1', '1', '2', '2', '6', '7','8','9','10'],
"Card_no": ['111', '222', '333', '444', '555', '666', '777','888','999','000'],
"Card_name":['AAA','AAA','BBB','CCC','AAA','DDD','EEE','BBB','CCC','CCC'],
"Group_code":['123','123','456','678','123','434','678','365','678','987'],
"Amount":['100','240','450','212','432','123','543','567','232','453']})
Второй DF:
df1 = pd.DataFrame({"Group_code": ['123', '123','456', '678','678', '434', '987','421'],
"Desc1": ['Electrical', 'Electrical','Hardware', 'House', 'House', 'Car','','Toy'],
"Desc2":['Electricals111','Electricals123','Hardware112','House232','House112',
'Car','Bike','Toy']})
Ожидаемый DF:
df3 = pd.DataFrame({"Customer_no": ['1', '1', '1', '2', '2', '6', '7','8','9','10'],
"Card_no": ['111', '222', '333', '444', '555', '666', '777','888','999','000'],
"Card_name":['AAA','AAA','BBB','CCC','AAA','DDD','EEE','BBB','CCC','CCC'],
"Group_code":['123','123','456','678','123','434','678','365','678','987'],
"Amount":['100','240','450','212','432','123','543','567','232','453'],
"Category" :['Electrical','Electrical','Hardware','House','Electrical','Car','House','','House','Bike']})