gpt4 book ai didi

Python Pandas Dataframe - 每两周计算一次值的总和

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:31 25 4
gpt4 key购买 nike

我有一个数据框,其值如下-

               Amount  Product  DocDate
0 1099.0 1100 2018-01-02
1 1234.0 1100 2018-01-04
2 1000.0 1100 2018-01-06
3 8000.0 1100 2018-01-28
4 3000.0 1100 2018-02-09
5 4500.0 1100 2018-02-20

我需要计算每两周末计算的金额字段的总和。

例子:

Product Amount FortNight
1100 3333.0 Jan 1st Fortnight (this could be date format too!!)
1100 3000.0 Feb 2nd Fortnight
1100 4500.0 Feb 1st Fortnight

如果它不涉及循环就好了(因为我也有产品循环)我尝试将周和月分开(分组)并计算,但无法获得预期结果,因为它是数据框中的一列。

提前致谢。感谢帮助。

最佳答案

首先,我有点担心,因为你说你在 pandas 中使用循环......你永远不应该在 pandas 中使用循环,它们不是为它而设计的,而且非常缓慢和无效。有一些非常罕见的情况是您无法避免的,但即便如此,也有更好地优化它的选项。

要回答您的问题,您首先需要将 DocDate 转换为日期时间格式:

from datetime import datetime
df.DocDate = df.DocDate.apply(lambda d: datetime.strptime(d, %Y-%m-%d))

然后您可以使用 datetimeIndex.resample 函数,它的工作方式与 groupby 完全相同,但允许您按时间限制对数据进行分组:

df = df.set_index('DocDate').resample('2W').Amount.sum()

这里的resample('2W')表示按2周时间分组。

关于Python Pandas Dataframe - 每两周计算一次值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51101259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com