小编写这篇文章的主要目的,主要是给大家介绍关于pandas相关的一些问题解答,包括将datetime64[ns]转为字符串日期,那么,具体是怎么进行操作的呢?下面给大家做出一个解答。
将datetime64[ns]转为字符串日期
将datetime64[ns]转为字符串日期(“%Y-%m-%d”)最核心的用法是:
pandas.series.dt.strftime('%Y-%m-%d')
如果是DataFrame或Series的index,则转换最核心的用法是:
pandas.DataFrame.index.strftime("%Y-%m-%d")
实例代码
将series转为字符串日期:
importpandasaspd defconvert_datetime(col_series:pd.Series): """seriesdatetime64[ns]转字符串日期""" ifcol_series.dtype=="datetime64[ns]": returncol_series.dt.strftime('%Y-%m-%d') else: returncol_series defmain(): time_series=pd.Series(pd.date_range(start="20200101",periods=20,freq="D")) new_time_series=convert_datetime(time_series) print(time_series,"\n") print(new_time_series) if__name__=='__main__': main() 使用apply()将整个dataframe的所有datetime64[ns]都转为object类型的日期数据 importpandasaspd importnumpyasnp defconvert_datetime(col_series:pd.Series): """seriesdatetime64[ns]转字符串日期""" ifcol_series.dtype=="datetime64[ns]": returncol_series.dt.strftime('%Y-%m-%d') else: returncol_series defmain(): time_df=pd.DataFrame(index=np.arange(0,20)) time_df['dt_col']=pd.date_range(start="20200101",periods=20,freq="D") time_df['num_col']=np.random.random(size=20) convert_time_df=time_df.apply(convert_datetime,axis=0) print(time_df.dtypes,"\n==============") print(convert_time_df.dtypes) if__name__=='__main__': main()
pythondatetime与字符串、时间戳与字符串相互转换
用flask解决前面传来的时间参数时,可能是时间段,也可能是字符串数组,在不用前面修改的情形下,后端开发能自己解决。
情况1:将datetime形式转为需要的字符串
(这样的字符串在写原生sql语句是可以当作实参传递使用)
importdatetime time1=datetime.datetime.now() print(type(time1)) print(time1)#假设前端传的形式不符合后端要求 time1=time1.strftime('%Y-%m-%d%H:%M:%S')#只取年月日,时分秒 print(type(time1)) print(time1)
情况2:将字符串形式的时间转为datetime形式
importtime,datetime str_time='2020-9-2021:33:21' fmt='%Y-%m-%d%H:%M:%S' print(str_time) print(type(str_time)) str_time=datetime.datetime.strptime(str_time,"%Y-%m-%d%H:%M:%S") print(str_time) print(type(str_time)) importtime,datetime str_time='2020-9-2021:33:21' fmt='%Y-%m-%d%H:%M:%S' print(str_time) print(type(str_time)) str_time=datetime.datetime.strptime(str_time,"%Y-%m-%d%H:%M:%S") print(str_time) print(type(str_time)) point_detect=db.session.execute("selecta.idasflag_id,a.patrol_time,b.idaspoint_id,b.point_number,b.x_coor,b.y_coorfrompipe_user_pointaleftjoinpipe_pointbona.pipe_point_id=b.id anda.pipe_user_id='%s'anda.patrol_time<='%s'anda.patrol_time>='%s'andb.is_active=1"%(patrol_id,start_time,end_time)).fetchall() importtime,datetime start_time=datetime.datetime.now() print(type(start_time)) print(start_time)#假设前端传的形式不符合后端要求 start_time=start_time.strftime('%Y-%m-%d')#只取年月日时分秒由自己添加 print(type(start_time)) print(start_time) start_time=start_time+'00:00:00' print(type(start_time)) print(start_time) end_time=datetime.datetime.now().strftime('%Y-%m-%d%H:%M:%S') print(type(end_time)) print(end_time)
综上所述,小编就为大家介绍到这里了,希望可以为各位读者带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/127841.html
摘要:生成一个时间段生成一个时间区间段,间隔为小时生成一个,并制定索引为时间段改变时间间隔转换为日期格式数字生成日期格式字符生成日期 1、生成一个时间段 In [1]:import pandas as pdIn [2]:import numpy as np1)生成一个时间区间段,间隔为小时In [3]:rng = pd.date_range(1/1/2011, periods=72, fre...
摘要:没错,在中你一样可以这样简单的操作,而不同的是你操作的是一整列的字符串数据。因为对于类型的,字符的操作发生在的非重复值上,而并非原上的所有元素上。下面的这些属性基本都是关于查看和操作数据类型的。 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 showImg(https://segmentfault.com/img/remote/146000001...
摘要:没错,在中你一样可以这样简单的操作,而不同的是你操作的是一整列的字符串数据。因为对于类型的,字符的操作发生在的非重复值上,而并非原上的所有元素上。下面的这些属性基本都是关于查看和操作数据类型的。 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 showImg(https://segmentfault.com/img/remote/146000001...
摘要:不为人知的七大实用技巧大家好,我今天勤快地回来了,这一期主要是和大家分享一些的实用技巧,会在日常生活中大大提升效率,希望可以帮助到大家还是老样子,先给大家奉上这一期的章节目录自定义选项,设置实用中模块构建测试数据巧用访问器合并其他列拼接使用 Pandas不为人知的七大实用技巧 大家好,我今天勤快地回来了,这一期主要是和大家分享一些pandas的实用技巧,会在日常生活中大大提升效率,希望...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 891·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02