熊猫如何仅在给定的月份和日期下计算增量

时间:2019-06-17 16:13:33

标签: python python-3.x pandas dataframe datetime

我有以下df

doc_date    date_string
2019-06-03  WW0306
2019-06-07  EH0706

doc_datedatetime64,格式为year-month-daydate_string的格式为字符串dtype,格式为day/monthmonth/day(如果删除了非数字字符;

df['date_string'].str.replace(r'\D+', '')

如何将date_string转换为datetime64,以及如果within_180位于{{1 }}不考虑它没有转换成的年份和日期格式;

true

结果应该看起来像

date_string

1 个答案:

答案 0 :(得分:2)

IIUC,您将date_string列转换为replace之后的日期时间,并使用series.dt.dayofyear访问这两列的年份,并与series.le()进行比较:

s=pd.to_datetime(df['date_string'].str.replace(r'\D+', ''),format='%d%m')
#df.doc_date=pd.to_datetime(df.doc_date) convert to datetime if not already datetime
df['withith_180'] = (df.doc_date.dt.dayofyear-s.dt.dayofyear).le(180)

    doc_date date_string  withith_180
0 2019-06-03      WW0306         True
1 2019-06-07      EH0706         True