前言:我们在进行数据清洗得时候,尤其是针对跟时间类型挂钩得数据得时候,总会想让他变成datetime类型方便我们得应用,但是数据又是字符串类型,在此我分享两种方法给大家!
第一种:
- 直接利用pd.todatetime
import pandas as pd
# 先创建一个dataframe例子 里面1.1 就是1月1号
df2= pd.DataFrame({'a':['1.1','1.2','1.3'],'b':['2.1','2.2','2.3']})
df2
- Out:
# format 及为格式化字符串 这个根据自己得数据进行选择
df2['date_formatted']=pd.to_datetime(df2['a'],format='%m.%d')
- Out:
这种方法适合年月日都有,个人认为,因为如果只有月和日,他会自动把年份添加上去并且是1900.
第二种
自定义函数进行船转换
# 需要time模块和datetime
import time,datetime
def str2time(date_str):
fmt = '%m.%d' # 这一步根据你自己得字符串进行选择 格式化
time_tuple = time.strptime(date_str, fmt)
# 选择月 日
month, day = time_tuple[1:3]
# 相比于之前得方法这种方法得优点在于可以指定年份
a_date = datetime(2020,month, day)
return a_date
- Input:
str2time('1.31')
- Output:
datetime.datetime(2020, 1, 31, 0, 0)