gpt4 book ai didi

python - 从 Pandas 的最后日期开始计算每年的最后一个值

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:36 26 4
gpt4 key购买 nike

在 Pandas 中按年重新采样/分组/等的最佳方法是什么,而不是按日历年计算从数据中的最后日期开始的完整年份?

示例数据集

pd.DataFrame({
'MyDate': ['2017-02-01', '2017-07-05', '2017-08-26', '2017-09-03', '2018-02-04',
'2018-08-03', '2018-08-10', '2018-12-03', '2019-07-13', '2019-08-15'],
'MyValue': [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
})
    MyDate  MyValue
0 2017-02-01 100
1 2017-07-05 90
2 2017-08-26 80
3 2017-09-03 70
4 2018-02-04 60
5 2018-08-03 50
6 2018-08-10 40
7 2018-12-03 30
8 2019-07-13 20
9 2019-08-15 10

示例结果

最后日期是 2019-08-15,所以我想按上一整年 2018-08-16 - 2019-08-15、2017-08-17 - 2018-08-15 等进行分组.

此处获取每一年的最后结果:

MyDate  MyValue
0 2017-07-05 90
1 2018-08-10 40
2 2019-08-15 10

最佳答案

您可以减去最后一个值并创建年份组,然后使用 GroupBy.last 传递给 groupby :

df['MyDate'] = pd.to_datetime(df['MyDate'])

s = (df['MyDate'].sub(df['MyDate'].iat[-1]).dt.days / 365.25).astype(int)
df = df.groupby(s).last().reset_index(drop=True)
print (df)
MyDate MyValue
0 2017-07-05 90
1 2018-08-10 40
2 2019-08-15 10

关于python - 从 Pandas 的最后日期开始计算每年的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57713472/

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