如何在熊猫中围绕日期到星期开始

时间:2015-12-31 01:50:15

标签: python pandas

我正在使用带有日期列的DataFrame。如何将每个日期d映射到包含d的一周的开始日期?

3 个答案:

答案 0 :(得分:4)

import pandas as pd
df['Date'] - pd.to_timedelta(df['Date'].dt.dayofweek, unit='d')

答案 1 :(得分:2)

以下是使用便捷pd.DateOffset(weekday=0,weeks=1)方法计算周系列开头的另一种方法:

import pandas as pd
df=pd.DataFrame({'date':pd.date_range('2016-10-01','2016-10-31')})
df['BeginWeek']=df['date']-pd.DateOffset(weekday=0,weeks=1)

以下是一周中几天的快速列表:

df['BeginWeek'].dt.strftime("%a").unique() 
array(['Mon'], dtype=object)

并且原始列中的日期是:

df['date'].dt.strftime("%a").unique()
array(['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri'], dtype=object)

答案 2 :(得分:1)

如果您没有日期,则接受的答案将不起作用(至少对我而言)。如果您有 dis <- c('dis A','dis B','dis C','dis D','dis E','dis F','dis G','dis H') class <- 1:8 library(dplyr) library(qdap) dt %>% mutate(`Disease classification` = mgsub(dis,class,`Disease classification`)) # dt %>% # mutate(`NEW Disease classification` = mgsub(dis,class,`Disease classification`)) 对象,请改用它:

pandas._libs.tslibs.timestamps.Timestamp

关于它的GH讨论here