我有一个包含四列的csv文件:日期,批发商,产品和销售.我正在寻找每个日期的每个产品和批发商组合的先前销售平均值.这意味着在'C'时批发商'B'的产品'A'的平均先前销售额是多少.
例如,我们知道1月,4月,5月,8月批发商'B'的产品'A'的销售额分别为100,200,300,400.假设我们在1月之前没有任何记录.因此4月批发商'B'中产品'A'的平均售价等于100/1,而5月等于(200 + 100)/ 2且八月是(300 + 200 + 100)/ 3.
下表显示了我的数据:
date wholesaler product sales
12/31/2012 53929 UPE54 4
12/31/2012 13131 UPE55 1
2/23/2013 13131 UPE55 1156
4/24/2013 13131 UPE55 1
12/1/2013 83389 UPE54 9
12/17/2013 83389 UPE54 1
12/18/2013 52237 UPE54 9
12/19/2013 53929 UME24 1
12/31/2013 82204 UPE55 9
12/31/2013 11209 UME24 4
12/31/2013 52237 UPE54 1
Run Code Online (Sandbox Code Playgroud)
现在我正在使用此代码:
df = pd.read_csv('Sample.csv',index_col='date')
df2 = df.groupby(['wholesaler','product'])['sales'].mean()
Run Code Online (Sandbox Code Playgroud)
这给出了每个批发商产品的平均销售额,而我正在寻找每个日期以前销售额的平均值.
wholesaler product avg sales
11209 UME24 4.00
13131 UPE55 713.00
22423 UME24 1.00 …Run Code Online (Sandbox Code Playgroud) 我试图在R中编写一个函数,如下所示:
y<-function(x){2*x^2}
Run Code Online (Sandbox Code Playgroud)
它适用于所有给定的数字.例如:
> y(2)
[1] 8
Run Code Online (Sandbox Code Playgroud)
但它无法返回如下的参数化答案:
> y(a)
[1] 2*a^2
Run Code Online (Sandbox Code Playgroud)
如何在R中创建这样的函数?