教你怎么用python实现字符串转日期
作者:小白自留地 发布时间:2021-08-22 16:35:13
标签:python,字符串转日期,pandas库
一、生成日期数据
import pandas as pd
pd.date_range( )
同生成随机数的思想类似,使用pandas库中的函数
pd.date_range(start=None,end=None,periods=None,freq=None,tz=None,normalize=False,name=None,close=None,**kwargs)
1.1 设定开始时间、长度、频率
start_date='20200101'
length=10
date_1=pd.date_range(start=start_date,periods=10).tolist() #默认freq为D,每天
date_1
也可以设置频率freq=‘M'
date_1=pd.date_range(start=start_date,periods=10,freq='M')
1.2 设定起始、终止时间、频率
start_date='20200101'
end_date='20200110'
date_2=pd.date_range(start=start_date,end=end_date,freq='D') #默认为D
date_2
频率freq的设置有:
D --- Day --- 每日
B --- BusinessDay --- 每工作日
H --- Hour --- 每小时
T/min --- Minute ---每分钟
S --- Second --- 每秒
M --- MonthEnd --- 每月最后一个日历日
Q --- Quater --- 每季度
注意上面生成的日期数据,就是list格式,在构建数据框时可以直接用。
pd.DataFrame({'Time':date_1})
二、字符串转化为日期
导入数据时常会出现,日期型数据导入后,变成字符串格式,在后续使用时,需要转化为日期。
构造一个时间数据
date_list1=pd.date_range(start=start_date,periods=gap).strftime('%Y%m%d').tolist()
num1=np.random.randint(1,101,100) #生成1-101的随机整数
num2=np.random.randint(100,201,100)
df_temp=pd.DataFrame({'Time':date_list1,
'Number1':num1,
'Number2':num2})
df_temp.head()
上面数据构造时,为了方便之后举例子,将生成的时间数据转化为字符串后,构造的数据框。
2.1 pd.to_datetime()
print(df_temp['Time'].dtype)
print(pd.to_datetime(df_temp['Time']).dtype)
输出:
object
datetime64[ns]
pd.datetime这个函数可以直接作用在数据框的列上面,直接转换。
2.2 datetime.strptime
注意区分:
from datetime import datetime
datetime.strftime() #由日期格式转化为字符串
datetime.strptime() #由字符串格式转化为日期
例子:
print(datetime.strptime('20200101','%Y%m%d'))
print(datetime.strptime('2020-01-01','%Y-%m-%d'))
输出:
2020-01-01 00:00:00
2020-01-01 00:00:00
但是这个函数只能作用一个值,如果对数据框的列进行操作,需要首先定义一个函数:
from datetime import datetime
def date_ch(value):
return datetime.strptime(value,'%Y%m%d')
print(date_ch('20200812'))
df_temp['Time']=df_temp['Time'].apply(date_ch)
df_temp['Time']
三、从日期数据中提取成分
3.1 直接提取:
pd.to_datetime('20200307').month
#year:日
#month:月
#week:周
#day:日
输出:
3
3.2 使用strftime函数:
pd.to_datetime('20200101').strftime('%Y-%m')
输出:
‘2020-01'
3.3 字符串切片截取
数据如下:
def date_ch(value):
str_value=value.strftime('%Y-%m-%d')
month=str_value[5:7]
return month
df_temp['Time'].apply(date_ch)
#或者
#df_temp['Time'].apply(lambda x:date_ch(x))
strftime函数提取日期成分中,日期的标准化格式符号:
%a 星期的简写。如 星期三为Web
%A 星期的全写。如 星期三为Wednesday
%b 月份的简写。如4月份为Apr
%B 月份的全写。如4月份为April
%c: 日期时间的字符串表示。(如: 05/01/10 09:00:20)
%d: 日在这个月中的天数
%f: 微秒(范围[0,999999])
%H: 小时(24小时制,[0, 23])
%I: 小时(12小时制,[0, 11])
%j: 日在年中的天数 [001,366]
%m: 月份([01,12])
%M: 分钟([00,59])
%p: AM或者PM
%S: 秒(范围为[00,61])
%U: 周在当年的周数当年的第几周),星期天作为周的第一天
%w: 今天在这周的天数,范围为[0, 6],6表示星期天
%W: 周在当年的周数,星期一作为周的第一天
%x: 日期字符串(如:05/01/20)
%X: 时间字符串(如:09:00:20)
%y: 2个数字表示的年份
%Y: 4个数字表示的年份
%z: 与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z: 时区名称(如果是本地时间,返回空字符串)
来源:https://blog.csdn.net/qq_43165880/article/details/117166506


猜你喜欢
- Linux环境MySQL服务器级优化讲解 摘要:本节简单介绍了如何在服务器级优化数据库的性能
- 这篇文章主要介绍了Python属性和内建属性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 这个仿msn的右下角popup提示窗口效果很久以前收集的,现在整理出来给大家分享,需要的朋友可以拿去用,特点,提示窗口内容和js代码分离容易
- 基础介绍今天我跟大家把我理解的这一块全面的介绍下,配有sql语句送给大家。首先来给大家做个这一块的介绍:1,自连接说到底就是多张表都是同一张
- 在JS中有些内存只需执行一遍即可,如浏览器类型检测是最常用的一个功能,因为我们使用Ajax的时候需要检测浏览器的内置的XHR。我们可以在第一
- 做程序开发的人都知道版本控制的重要性, 代码的管理好说,TFS/SVN/VSS/CVS,哪个都能用。但涉及到数据库的版本控制,就不是太好做的
- 本文实例讲述了Python计算斗牛游戏概率算法。分享给大家供大家参考,具体如下:过年回家,都会约上亲朋好友聚聚会,会上经常会打麻将,斗地主,
- 1.腾讯企业邮箱SMTP服务器地址:smtp.exmail.qq.com,ssl端口为:4652.确保腾讯企业邮箱中开启了SMTP服务:3.
- 一、报错信息:【file】【Default Settint】---Project Interpreter 点击+搜索suds安装模块报错解决
- 【原文地址】New "Orcas" Language Feature: Extension Methods【原文发表日期
- chat.html <html> <head><title>asp之家-简单聊天&l
- 第一种:ROW_NUMBER() OVER()方式select * from ( select *, ROW_NUMBER() OVER(O
- 一、说明自己一是想跟上潮流二是习惯于直接干三是没有人可以请教,由于这三点经常搞得要死要活。之前只简单看过没写过Diango,没看过Djang
- 0.目标这一节,我将实现一个简单的发送邮件功能。1.部署1.1 部署Express如果不知道如何部署,可参照:部署Express1.2 准备
- 大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法:1.如何读取excel文件网上的版本很
- SqlServer 在事务中获得自增ID实例代码在sqlserver 中插入数据时,如何返回自增的主键ID,方式有很多,这里提
- 作者:AngelGavin 出处:CSDNInternet Explorer 5.0 对 XML 提供哪个级别的支持?Inter
- 很多年前,我们就可以轻易的从很多国营商场、火车车厢、饭馆旅馆中看到墙上挂的那个小本本-意见薄,作为经营方与顾客沟通的
- 数据增强卷积神经网络非常容易出现过拟合的问题,而数据增强的方法是对抗过拟合问题的一个重要方法。2012 年 AlexNet 在 ImageN
- requests模块:python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。作用:模拟浏览器发请求。提示:老版使用