来自具有3列原始数据的数据帧的相对频率?

时间:2018-11-08 19:49:03

标签: python pandas dataframe frequency frequency-analysis

Python(&StackOverflow)的新手,我正在努力寻找一种解决方案来获取我的['Product_Name', 'Date_of_Sale', 'Quantity']数据并输出每种产品每日数量频率的相对频率。

例如,产品1售出8个单位(第1天),6个单位(第2天),6(第3天),5(第4天),8(第5天),7(第6天),6(第7天) )在7天内给出{5 units : 0.142, 6 : 0.429, 7 : 0.142, 8 : 0.286}的乘积1的相对频率。

如何在一段时间内对所有产品执行此操作?

2 个答案:

答案 0 :(得分:1)

使用value_counts()to_dict()

import pandas as pd

df = pd.DataFrame({'Day': [1, 2, 3, 4, 5, 6, 7],
    'Product1': [8, 6, 6, 5, 8, 7, 6]})

df['Product1'].value_counts().div(df.shape[0]).to_dict()

收益:

{6: 0.42857142857142855, 8: 0.2857142857142857, 7: 0.14285714285714285, 5: 0.14285714285714285}

答案 1 :(得分:1)

归一化值计数:

>>> df['Product1'].value_counts(normalize=True)
6    0.428571
8    0.285714
7    0.142857
5    0.142857
Name: Product1, dtype: float64

“针对一段时间内的所有产品”执行此操作取决于您的数据结构。您需要提供示例和预期结果。