gpt4 book ai didi

python - Pandas 在下周日返回每一行

转载 作者:行者123 更新时间:2023-11-28 22:11:33 31 4
gpt4 key购买 nike

在 Pandas for Python 中,我有一个数据集,其中有一列日期时间。我需要为每一行创建一个新列,其中包含下一个星期日的日期。

我尝试了各种方法尝试使用 iterrows,然后算出星期几,然后添加一天直到那天是 7,但它没有用,我什至不确定我该怎么做然后返回日期而不仅仅是日期。我也不认为 iterrows 是最好的方法。

从日期列返回下一个星期日的列的最佳方法是什么?

最佳答案

使用 Pandas 日期偏移量,例如:

>>> pd.to_datetime('2019-04-09') + pd.offsets.Week(n=0, weekday=6)
Timestamp('2019-04-14 00:00:00')

例如,这会在一周内更改提供的 datetime。这是矢量化的,所以你可以像这样对一个系列运行它:

temp['sunday_dates'] = temp['our_dates'] + pd.offsets.Week(n=0, weekday=6)
    our_dates  random_data sunday_dates
0 2010-12-31 4012 2011-01-02
1 2007-12-31 3862 2008-01-06
2 2006-12-31 3831 2007-01-07
3 2011-12-31 3811 2012-01-01

注意传递 n=0 以在那天保留已经是星期日的一天。如果您想强制到下一个星期日,请传递 n=1Week(weekday=INT) 参数在星期一为 0 索引,取值从 0 到 6(含)。因此,传递 0 表示所有星期一,传递 1 表示所有星期二,等等。使用它,您可以在一周中的任何一天制作任何内容。

注意如果您想去最后一个星期天,只需将+ 换成- 即可返回。

注意(这样的注释,大有裨益)关于时间序列功能的具体文档可以在这里找到:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html

关于python - Pandas 在下周日返回每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55600401/

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