【python数据处理】— “2020-01-01 05:20:15“日期格式数据


一、数据说明及目标

  • 数据说明

数据表有一列名为"datetime"表示时间数据,该列的数据格式是"2020-01-01 05:20:15"。

import pandas as pd
data=pd.read_excel("D:\\test.xlsx")
data

在这里插入图片描述

data.dtypes

在这里插入图片描述

  • 目标

提取date(年月日)、hour、weekday、month。

二、实现方式

1.提取date

按空格分成两段,取第一段。比如"2022-01-01"。

data["date"] = data.datetime.astype("str").apply(lambda x: x.split()[0])
data

在这里插入图片描述

说明:

  • lambda函数也叫匿名函数,即没有具体名字的函数,它允许快速定义单行函数,用在任何需要函数的地方,这区别于def。
  • apply函数,返回括号中的参数。
  • split(sep),sep表示用于分割的字符。它通过指定字符进行切片。

2.提取hour

先把它按空格分成两段,取第二段,再按:切分,取第一段。比如"05"。

data["hour"]=data.datetime.astype("str").apply(lambda x: x.split()[1].split(":")[0])

在这里插入图片描述

3.提取weekday

按空格把时间分成两段取第一段,把它变成合适的时间格式,得出是星期几。(比如’Monday’)

from datetime import datetime
import calendar
datestr=data.datetime.astype("str")[1].split()[0]
data["weekday"]=data.date.apply(lambda datestr:calendar.day_name[datetime.strptime(datestr,"%Y-%m-%d").weekday()])
data

在这里插入图片描述

说明:

  • datetime.strptime()函数把字符串转化为datetime格式,%Y 四位数的年份表示(000-9999),%m 月份(01-12),%d 月内中的一天(0-31)。
  • weekday()函数返回的是当前日期所在的星期数。
  • calendar.day_name()函数返回星期列表([‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’, ‘Sunday’]),根据返回星期天数列表对应的星期名称。

4.提取month

from datetime import datetime
import calendar
datestr=data.datetime.astype("str")[1].split()[0]
data["month"]=data.date.apply(lambda datestr:calendar.month_name[datetime.strptime(datestr,"%Y-%m-%d").month])
data

在这里插入图片描述

说明:

  • month函数返回的是当前日期所在的月份。
  • calendar.month_name函数返回月份列表([‘’, ‘January’, ‘February’, ‘March’, ‘April’, ‘May’, ‘June’, ‘July’, ‘August’, ‘September’, ‘October’, ‘November’, ‘December’]),根据返回的月份数取列表对应的月份名称。

猜你喜欢

转载自blog.csdn.net/sodaloveer/article/details/140154432
今日推荐