Новичок в аналитике с Python, поэтому, пожалуйста, будьте осторожны :-) Я не смог найти ответ на этот вопрос - извинения, если на него уже ответили в другом формате в другом формате.
У меня есть набор данных транзакций для торговой точки. Переменные вместе с объяснением:
- раздел: раздел магазина, ул;
- prod_name: название продукта, ул;
- квитанция: номер счета, int;
- кассир, номер кассира, int;
- стоимость: стоимость предмета, поплавок;
- дата, в формате ММ / ДД / ГГ, ул;
- время, в формате ЧЧ: ММ: СС, ул;
Квитанция имеет одинаковое значение для всех продуктов, приобретенных за одну транзакцию, поэтому ее можно использовать для определения среднего количества покупок, совершенных за одну транзакцию.
Каков наилучший способ сделать это? По сути, я хочу использовать groupby()
для группировки переменной получения по ее идентичным вхождениям, чтобы я мог создать гистограмму.
Работа с данными в панде DataFrame.
РЕДАКТИРОВАТЬ:
Вот некоторые примеры данных с заголовком (prod_name на самом деле является шестнадцатеричным числом):
section,prod_name,receipt,cashier,cost,date,time
electronics,b46f23e7,102856,5,70.50,05/20/15,9:08:20
womenswear,74558d0d,102857,8,20.00,05/20/15,9:12:46
womenswear,031f36b7,102857,8,30.00,05/20/15,9:12:47
menswear,1d52cd9d,102858,3,65.00,05/20/15,9:08:20
Из этого набора образцов я бы ожидал гистограмму получения, которая показывает два случая получения 102857 (так как этот человек купил две позиции в одной транзакции) и одно вхождение соответственно получения 102856 и получения 102858. Примечание: мой набор данных невелик, примерно 1 миллион строк
источник
Ответы:
Тогда вы хотите:
источник
s[s>1]
, гдеs=df.groupby('receipt').receipt.count()
Я собираю несколько уроков по обработке данных. Может быть, моя тетрадь Jupyter на GitHub поможет. Я думаю, что именно ключ модифицирует строку:
быть:
Для группировки по нескольким переменным это должно работать:
источник
df.groupby('reciept')['date'].count()
дает тот же результат, что иdf.groupby('reciept')['prod_name'].count()
Из того, что я могу понять, вам нужна гистограмма вашей квитанции. Вы можете попробовать что-то вроде этого
import pandas as pd data = np.read_csv("your_file_path.csv") data.groupby(["receipt"])receipt.count().sort_values(ascending=False).head(20).plot.bar()
Это даст вам гистограмму наиболее повторяющихся номеров счетов (20 наиболее повторяющихся). Измените число в функции заголовка, чтобы получить больше или меньше.
источник