遇到导入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(新变量)检验即可