使用python根据产品类型的数量提取每个类别的订单数量,如果您有任何其他方法请告诉我
这些是我使用的库
#Importing libraries
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.set()
这是我所有产品的数量
print(" The Total number for each product type: ")
data.DrugType.value_counts()
输出为
productA 8124
productB 3047
变量从日期&时间值到日期值
data['date'] = pd.to_datetime(data['Assessment_Date']).dt.date
data['date']=pd.to_datetime(data['date'])
下面是我根据订单日期查找产品订单数量的代码
print( data.groupby('DrugType')['date'].sum() )
这是我得到的KEYERROR: 'date'不是data中的列
我希望输出像下面这个
productA 1-11-2022 8124
productB 1-11-2022 3047
如果您有另一种方法来编写代码来计算每个类别的订单数请让我知道
谢谢你,如果没有一个有用的答案,请不要结束我的问题
让我们从一些开始可再生的示例数据。它的统计数据与你的相似。
import datetime as dt
from random import randrange, seed
import pandas as pd
start = dt.datetime(2022, 1, 1)
seed(0)
data = pd.DataFrame([
dict(
DrugType="product" + ("A" if randrange(100) < 73 else "B"),
date=start + dt.timedelta(days=randrange(365)),
qty=1,
)
for _ in range(11_171)
])
现在还不完全清楚你在找什么。有两种可能。
>>> data.groupby(["date", "DrugType"]).count()
qty
date DrugType
2022-01-01 productA 20
productB 15
2022-01-02 productA 26
productB 10
... ...
2022-12-30 productA 24
productB 8
2022-12-31 productA 24
productB 9
[730 rows x 1 columns]
这就解释了去年的每一天我们卖两种药,通常A比b多。
或者,也许你正在寻找一些东西更简单,只关注一个系列。
>>> data.groupby(["date"]).qty.count()
date
2022-01-01 35
2022-01-02 36
2022-01-03 27
..
2022-12-29 31
2022-12-30 32
2022-12-31 33
Name: qty, Length: 365, dtype: int64
这表明我们通常销售每天超过30个单位,每日总数与小计相匹配