python 怎样将dataframe中的字符串日期转化为日期的方法


Posted in Python onSeptember 26, 2019

方法一:也是最简单的

直接使用pd.to_datetime函数实现

data['交易时间'] = pd.to_datetime(data['交易时间'])

方法二:

源自利用python进行数据分析P304

使用python的datetime包中的

strptime函数,datetime.strptime(value,'%Y/%M/%D')

strftime函数,datetime.strftime(‘%Y/%M/%D')

注意使用datetime包中后面的字符串匹配需要和原字符串的格式相同,才能转义过来,相当于yyyy-mm-dd格式的需要按照'%Y-%M-%D'来实现,而不是'%Y/%M/%D'

data['交易时间']=data['交易时间'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d %H:%M:%S'))

注意到上面代码的'%Y-%m-%d %H:%M:%S'嘛?

这里的格式必须与原数值的格式一模一样才能转换,如果原数值里面是精确到时分秒的,那么你此处不写%H:%M:%S就没办法转换!!!切记

'''
获取指定日期的上个月
日期字符串和日期格式
'''
def getLastMonth(dtstr,dateformat):
 d=datetime.strptime(dtstr, dateformat).date()
 year = d.year
 month = d.month
 if month == 1 :#如果是本年1月的
 month = 12
 year -= 1
 else :#如果是大于1月的
 month -= 1
 return (datetime(year,month,1)).strftime(dateformat)
 
'''
两个日期之间相差的月数
包括开始日期和结束日期的当天
日期字符串和日期格式
''' 
def diffMonth(startDate,endDate,dateformat):
 start=datetime.strptime(startDate, dateformat).date()
 end=datetime.strptime(endDate, dateformat).date()
 
 startYear=start.year
 startMonth=start.month
 
 endYear=end.year
 endMonth=end.month
 
 #如果是同年
 if startYear==endYear:
 diffmonths=endMonth-startMonth
 #如果是上年
 elif endYear-startYear==1:
 diffmonths=12+endMonth-startMonth
 #如果是大于1年
 elif endYear-startYear>1:
 years=endYear-startYear
 diffmonths=(years-1)*12+12+endMonth-startMonth
 #如果开始日期大约结束日期报错
 elif endYear-startYear<0 or( endYear==startYear and endMonth-startMonth):
 print 'enddate must greater than startdate'
 
 return int(diffmonths+1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
九步学会Python装饰器
May 09 Python
python的socket编程入门
Jan 29 Python
Python SQLite3简介
Feb 22 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
Python中asyncio模块的深入讲解
Jun 10 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
python操作gitlab API过程解析
Dec 27 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
python urllib库的使用详解
Apr 13 Python
如何解决.cuda()加载用时很长的问题
May 24 Python
python实现股票历史数据可视化分析案例
Jun 10 Python
python3多线程知识点总结
Sep 26 #Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 #Python
Python容器使用的5个技巧和2个误区总结
Sep 26 #Python
通过python3实现投票功能代码实例
Sep 26 #Python
Python编写打字训练小程序
Sep 26 #Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 #Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 #Python
You might like
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
Angular实现响应式表单
2017/08/04 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python生成excel的实例代码
2017/11/08 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
简单了解python的break、continue、pass
2019/07/08 Python
详解用python生成随机数的几种方法
2019/08/04 Python
np.dot()函数的用法详解
2020/01/17 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
what is the difference between ext2 and ext3
2015/08/25 面试题
科技之星事迹材料
2014/06/02 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
质检员岗位职责范本
2015/04/07 职场文书
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers