как преобразовать индексы из DataFrame в данные?
В местном магазине решили добавить анализ данных и каждый чек представлять в виде DataFrame.
Прайс-лист уже сформирован в виде объекта Series, где индексами являются названия, а значениями — цены.
Напишите функцию, cheque, которая принимает прайс-лист и список покупок в виде неопределённого количества именованных параметров (ключ — название товара, значение — количество).
Функция должна вернуть объект DataFrame со столбцами:
- наименование продукта (product);
- цена за единицу (price);
- количество (number);
- итоговая цена (cost). Строки чека должны быть отсортированы по названию продуктов в лексикографическом порядке.
Пример
Ввод
products = ['bread', 'milk', 'soda', 'cream']
prices = [37, 58, 99, 72]
price_list = pd.Series(prices, products)
result = cheque(price_list, soda=3, milk=2, cream=1)
print(result)
Вывод
product price number cost
0 cream 72 1 72
1 milk 58 2 116
2 soda 99 3 297
мой код:
import pandas as pd
products = ['bread', 'milk', 'soda', 'cream']
prices = [37, 58, 99, 72]
price_list = pd.Series(prices, products)
def cheque(price_list, **kwargs):
d = {'price':price_list, 'number': kwargs }
price = pd.DataFrame(d)
price['cost'] = price['number'] * price['price']
return price
print(cheque(price_list, soda=3, milk=2, cream=1))
Результат:
price number cost
bread 37 NaN NaN
cream 72 1.0 72.0
milk 58 2.0 116.0
soda 99 3.0 297.0
Источник: Stack Overflow на русском