Я действительно новичок в python, и у меня возникли трудности с упрощением шагов по созданию «промежуточного значения» при использовании функции группировки pandas в исходном фрейме данных ['Product', 'Customer'].
Пожалуйста, помогите предложить любые указатели и решения. Благодарю вас!
# Desired Output
Product Customer Qty
Item A Cust1 5
Cust4 10
Subtotal 15
Item B Cust1 15
Cust2 5
Cust6 1
Subtotal 21
Item C Cust3 1
Subtotal 1
# Source Dataframe
Product Customer Qty
0 Item A Cust1 5
1 Item A Cust4 10
2 Item B Cust1 15
3 Item B Cust2 5
4 Item B Cust6 1
5 Item C Cust3 1
# Source Dataframe code
source_df = pd.DataFrame({
'Product' : ['Item A', 'Item A', 'Item B', 'Item B','Item B', 'Item C'],
'Customer' : ['Cust1', 'Cust4', 'Cust1', 'Cust2', 'Cust6', 'Cust3'],
'Qty' : [5,10,15,5,1,1]
})
Мое собственное решение:
- Создайте промежуточную группу фреймов данных по «Продукту» и агрегируйте «Количество» со столбцом, заполненным строковыми значениями «Промежуточный итог».
- Объединить исходный фрейм данных и промежуточный фрейм данных
- Выполните groupby еще раз для ['Product', 'Customer'], чтобы получить желаемый результат.
Это не работает, если имя клиента начинается с буквы после «S», потому что оно может быть отсортировано ниже «Промежуточного итога».
# Intermediate Subtotal Dataframe
Product Customer Qty
0 Item A Subtotal 15
1 Item B Subtotal 21
2 Item C Subtotal 1
Product
,Customer
иQty
с.sort_values
- person modesitt   schedule 23.04.2020