Pandas 将DataFrame字符串日期转化成时间类型日期

 由于业务场景的需求,这张表里日期格式与其他表不匹配,而且需要把日期向后推算1天、2天等等。

 

输入(列中数据是object格式):

date
2019-11-01 19:30
2019-11-30 19:00

# Data columns (total 1 columns):
# date    2 non-null object

 期望输出:

  1. 列datetime:datetime格式,方便计算。
  2. 列today:时间由datetime格式,转为字符串格式
  3. 列tomorrow:时间加上1天,然后转为字符串格式
            date            datetime     today  tomorrow
2019-11-01 19:30 2019-11-01 19:30:00  20191101  20191102
2019-11-30 19:00 2019-11-30 19:00:00  20191130  20191201

# Data columns (total 4 columns):
# date        2 non-null object
# datetime    2 non-null datetime64[ns]
# today       2 non-null object
# tomorrow    2 non-null object

 Python实现代码:

import datetime

import pandas as pd

dictDate = {'date': ['2019-11-01 19:30', '2019-11-30 19:00']}
df = pd.DataFrame(dictDate)

df['datetime'] = pd.to_datetime(df['date'])
df['today'] = df['datetime'].apply(lambda x: x.strftime('%Y%m%d'))
df['tomorrow'] = (df['datetime'] + datetime.timedelta(days=1)).dt.strftime('%Y%m%d')

实现方法: 

  1. 列date,用pd.to_datetime,将原本date列从object格式转为datetime64[ns]格式
  2. 列today,用.strftime('%Y%m%d')取出年月日,把这个函数用apply lambda应用到df的这一列中。
  3. 列tomorrow,用+ datetime.timedelta(days=1)加上一天。然后用.dt.strftime('%Y%m%d')取出年月日。

你可能感兴趣的:(Pandas)