3 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個贊
使用 Pandas 日期偏移量,例如:
>>> pd.to_datetime('2019-04-09') + pd.offsets.Week(weekday=6)
Timestamp('2019-04-14 00:00:00')
例如,這會在datetime一周內(nèi)更改所提供的內(nèi)容。這是矢量化的,因此您可以針對這樣的系列運(yùn)行它:
temp['sunday_dates'] = temp['our_dates'] + pd.offsets.Week(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
Nb 該Week(weekday=INT)參數(shù)在星期一索引為 0,取值為 0 到 6(含)。因此,傳遞 0 會產(chǎn)生所有星期一,傳遞 1 會產(chǎn)生所有星期二,等等。使用它,您可以在一周中的任何一天制作任何您想要的東西。
鈮如果你想要去的最后一個周日剛剛交換+到-回去。
Nb(這樣的注釋,非常有用)關(guān)于時間序列功能的具體文檔可以在這里找到:https : //pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個贊
功能
import datetime
def datetime_to_next_sunday(original_datetime):
return original_datetime + datetime.timedelta(days=6-original_datetime.weekday())
返回轉(zhuǎn)移到下一個星期日的 datetime.datetime。擁有
import pandas as pd
df = pd.DataFrame({'A': ['Foo', 'Bar'],
'datetime': [datetime.datetime.now(),
datetime.datetime.now() + datetime.timedelta(days=1)]})
以下行應(yīng)該用于工作:
df['dt_following_sunday'] = df[['datetime']].applymap(datetime_to_next_sunday)

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個贊
接受的答案是要走的路,但您也可以為此使用Series.apply()和pandas.Timedelta(),即:
df["ns"] = df["d"].apply(lambda d: d + pd.Timedelta(days=(6 if d.weekday() == 6 else 6-d.weekday())))
d ns
0 2019-04-09 21:22:10.886702 2019-04-14 21:22:10.886702
添加回答
舉報