pandas等导入excel后 日期时间无法直接运算的问题 (str转datetime的方法)

遇到导入pd.read_excel之后日期是str的新手问题

学习的原文章是这个

整理了一下Python中时间的格式化、date(时间)和str(文本)之间的相互转换、以及相关的时间转换方法_代码讲故事的博客-CSDN博客_python 时间转文本


我的原数据是从excel倒过来的,原来的时间是str型。直接按照这个办法日期相减是报错的。因为这个问题看了好几遍上下视频,包括老师的笔记。

我直接把我的办法写在评论区,也算是一个小练习。
我导入的excel数据总共有四个序列,分别是名字,金额,开始日期和结束日期。
pd.read_excel()
导入后开始日期和结束日期都是str,无法简单的加减。
于是先
import datetime
导入时间模块
然后写一个函数进行调用(还好这个函数简单!现学现用!)
看函数的时候不理解为什么要多此一举把一个简单的转换方法变成单独的块,因为这样调用更简单,主代码部分更清晰。而且方便检查错误。
函数内容如下
def shijian(dd):
dd = datetime.datetime.strptime(dd, "%Y-%m-%d %H:%M")
return dd
这个函数只有一个形参,就是我们传入一个str格式的数据,datetime.datetime.strptime是前面的datetime的辨识格式,后面的(dd,是原数据, "%Y..."内容是时间的格式,如果需要加上秒,则增加:%S,不需要就不增加,可以根据实际情况去调整。
我喜欢用拼音做变量,因为不用切换输入法,而且与python的语言有明显差别,方便刚开始学的时候不混淆。
使用上述函数,遇到需要处理的日期就可以直接shijian("")调用了
如果是设置了变量 则直接shijian(变量)就可以返回时间格式的值了。
如果要检验一下,则print(type(新变量)检验即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值