我正在尝试解决如何从数据帧中获取今年到目前为止与去年到目前为止的值。数据帧:
ID start_date distance
1 2019-7-25 2
2 2019-7-26 2
3 2020-3-4 1
4 2020-3-4 1
5 2020-3-5 3
6 2020-3-6 3有数据回到2017年,更多的数据将不断增加,所以我希望YTD和LYTD是动态的,基于本年度。我知道如何计算每年和每个月的累积总和,但我真的很难计算YTD和LYTD。
year_month_distance_df = distance_kpi_df.groupby(["Start_Year","Start_Month"]).agg({"distance":"sum"}).reset_index()我尝试过的其他代码如下:
cum_sum_distance_ytd =
distance_kpi_df[["start_date_local","distance"]]
cum_sum_distance_ytd = cum_sum_distance_ytd.set_index("start_date_local")
cum_sum_distance_ytd = cum_sum_distance_ytd.groupby(pd.Grouper(freq = "D")).sum()当我尝试这个逻辑并将Start_Day添加到group by中时,它显然只是将当天的所有数据相加。
预期产出:年初至今=8去年迄今=4
发布于 2020-08-26 13:03:58
您可以将日期拆分为各个部分,并使用以下命令获得所有年份的ytd
expanding = df.groupby([
df.start_date.month, df.start_date.day, df.start_date.year
]).distance.sum().unstack().cumsum()在任何年份的行日期中没有值的地方,出栈都将填充np.nan ...如果有问题,可以使用fill_value参数
.unstack(fill_value=0).cumsum()https://stackoverflow.com/questions/63590465
复制相似问题