![](/img/trans.png)
[英]How to convert daily data into weekly or monthly in python with categorical and numerical column?
[英]Convert monthly data to weekly data - Python
我有一个 dataframe 看起来像这样:
ID Date Volume Sales
1 2020-02 10 4
1 2020-03 8 6
2 2019-12 6 8
2 2019-10 4 10
这里的数据是每月的,我想将其转换为每周.. 将数量和销售列除以该月的周数。
我已经尝试过,但只能逐列成功地完成此操作。有没有一种简单的方法可以做到这一点,也可以在大型数据集上处理。
将每周转换回每月是否是类似的步骤? 谢谢!
据我了解,您可以尝试使用pd.offset
基于Date
列创建所有周的数组,然后分解和groupby+transform
以获取每个组的计数以在除法中使用它:
s = pd.to_datetime(df['Date'])
u = (df.assign(Weeks=[pd.date_range(*x,freq='W')
for x in zip(s,s.add(pd.offsets.MonthEnd()))]).explode("Weeks"))
u[['Volume','Sales']] = u[['Volume','Sales']].div(
u.groupby("Date")['Date'].transform("count"),axis=0)
print(u)
ID Date Volume Sales Weeks
0 1 2020-02 2.5 1.0 2020-02-02
0 1 2020-02 2.5 1.0 2020-02-09
0 1 2020-02 2.5 1.0 2020-02-16
0 1 2020-02 2.5 1.0 2020-02-23
1 1 2020-03 1.6 1.2 2020-03-01
1 1 2020-03 1.6 1.2 2020-03-08
1 1 2020-03 1.6 1.2 2020-03-15
1 1 2020-03 1.6 1.2 2020-03-22
1 1 2020-03 1.6 1.2 2020-03-29
2 2 2019-12 1.2 1.6 2019-12-01
2 2 2019-12 1.2 1.6 2019-12-08
2 2 2019-12 1.2 1.6 2019-12-15
2 2 2019-12 1.2 1.6 2019-12-22
2 2 2019-12 1.2 1.6 2019-12-29
3 2 2019-10 1.0 2.5 2019-10-06
3 2 2019-10 1.0 2.5 2019-10-13
3 2 2019-10 1.0 2.5 2019-10-20
3 2 2019-10 1.0 2.5 2019-10-27
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.