【发布时间】:2020-08-20 01:36:38
【问题描述】:
我有一个如下所示的数据集-
Store Date Weekly_Sales
0 1 2010-05-02 1643690.90
1 1 2010-12-02 1641957.44
2 1 2010-02-19 1611968.17
3 1 2010-02-26 1409727.59
4 1 2010-05-03 1554806.68
它总共有 100 家商店。我想按季度过滤 2012 年的数据
# Filter out only the data in 2012 from the dataset
import datetime as dt
df['Date'] = pd.to_datetime(df['Date'])
ds_2012 = df[df['Date'].dt.year == 2012]
# Calculate Q on the dataset
ds_2012 = ds_2012.sort_values(['Date'],ascending=True)
quarterly_sales = ds_2012.groupby(['Store', pd.Grouper(key='Date', freq='Q')])['Weekly_Sales'].sum()
quarterly_sales.head(20)
收到输出
Store Date
1 2012-03-31 18951097.69
2012-06-30 21036965.58
2012-09-30 18633209.98
2012-12-31 9580784.77
在 Excel 中过滤时,Q2(2012-06-30) 和 Q3(2012-09-30) 的总和都不正确。我是熊猫的新手
【问题讨论】:
-
您能解释一下您的代码并提供答案吗?尽管您没有按商店分组,但它不起作用
-
也请分享源数据
-
我已经分享了源数据的上图。要我分享excel文件吗?
-
不,数据本身,只有几行。你可以做
df.to_dict('records')并分享它。这个link应该指导你如何去做 -
另外,请分享您的预期输出。数据也是如此,不是图片
标签: python pandas dataframe data-science