文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

pandas怎么实现datetime64与unix时间戳互转

2023-07-02 18:37

关注

本文小编为大家详细介绍“pandas怎么实现datetime64与unix时间戳互转”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas怎么实现datetime64与unix时间戳互转”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

datetime64与unix时间戳互转

在用pandas处理数据时,经常要处理一些时间类型数据,经常把pandas时间类型与datetime模块,还有python自带的time模块搞混淆,记录之。

unix 时间戳与pandas中的Timestamp互转

import timedef unixToTime(unixtime):    return pd.to_datetime(unixtime,unit='s',utc=True).tz_convert('Asia/Shanghai') #utc时间比上海时间少8小时,做时区转换 def timeToUnix(dt64):    return dt64.astype('datetime64[s]').astype('int') unixtime = 1514737265print(unixToTime(unixtime)) #python 自带time模块的local_time可以直接转北京时间struct_time = time.localtime(unixtime)print(struct_time)#转化格式dd = time.strftime("%Y-%m-%d %H:%M:%S",struct_time)print(dd)

输出:

2018-01-01 00:21:05+08:00
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=21, tm_sec=5, tm_wday=0, tm_yday=1, tm_isdst=0)
2018-01-01 00:21:05

datetime模块

python中还有一个datetime模块,这个模块包含一些函数,如today,now,fromtimestamp,strptime,Datetime

from datetime import datetimeimport pandas as pdstartTime = datetime.now()print(startTime)print(type(startTime)) #datetime 字符串转时间戳timestr = '2018-01-01 00:21:05'date_time = datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S")print(type(date_time))print(date_time)

输出:

2020-12-16 22:22:42.451086
<class 'datetime.datetime'>

#pandas 字符串转时间戳pd_time = pd.to_datetime(time,format="%Y-%m-%d %H:%M:%S") #或者#time = datetime(2018,1,1,0,21,5)#pd_time = pd.to_datetime(timestr,format="YYYY-MM-DD HH:MM:SS") print(type(pd_time))print(pd_time)

输出:

<class 'datetime.datetime'>
2018-01-01 00:21:05

#取到年,月,日,日期,小时,分钟,秒以及一周中的第几天year = pd_time.yearmonth =  pd_time.monthday = pd_time.daydate =  pd_time.datehour =  pd_time.hourminute =  pd_time.minuteseconds =  pd_time.secondprint(year)print(month)print(day)print(hour)print(minute)print(seconds)

输出:

2018
1
1
0
21
5

pandas默认时间格式转换为unix间戳

Pandas读取csv文件时,时间会自动显示为&lsquo;YYYY-MM-DD HH:MM:SS&rsquo;的格式,那么如果想要将这个时间转换为 Unix时间戳 呢?

先科普一下,什么是 Unix时间戳 呢?

Unix时间戳 是一种时间表示方式,是一个整型值,代表从格林威治时间1970年01月01日00时00分00秒起至现在经过的总秒数。

举个栗子

一个值为 1492751843 的Unix时间戳 ==>

把它转换为 北京时间为 2017/4/21 13:17:23

实际上,Pandas中时间用 pandas.datetime() 转换为 pandas.tslib.Timestamp(时间戳) 格式之后,已经变成了整型存储,即 Unix时间戳形式 。

如果我们需要这个时间戳的整型格式,可以用 time[0].value 这个属性把它提取出来。

样例

>>> import pandas as pd     # 导入pandas库>>> data = pd.read_csv('airquality.csv')        # 读入数据文件>>> data.time = pd.to_datetime(data.time)   # 将时间那一列从str转换为时间戳格式>>> type(data.time[0])      # 查看转换之后的格式<class 'pandas.tslib.Timestamp'>>>> data.time[0]            # 查看第一条数据,默认显示为‘YYYY-MM-DD HH:MM:SS'格式Timestamp('2014-05-01 00:00:00')>>> data.time[0].value  # 查看第一条数据的Unix时间戳格式1398902400000000000L>>> data.time[0].value//10**9   # 转换为秒级1398902400L>>> t1 = [t.value for t in data.time]   # 提取整列(纳秒级,即1s = 1,000,000,000 ns)>>> t1[:3]      # 显示前三条数据[1398902400000000000L, 1398906000000000000L, 1398909600000000000L]>>> t2 = [t.value//10**9 for t in data.time]    # 提取整列(秒级)>>> t2[:3]      # 显示前三条数据[1398902400L, 1398906000L, 1398909600L]>>> t1 = pd.DatetimeIndex(t1)       # 从list列表转换为pandas的DatetimeIndex格式>>> t1[:3]      # 显示前三条数据DatetimeIndex(['2014-05-01 00:00:00', '2014-05-01 01:00:00',               '2014-05-01 02:00:00'],              dtype='datetime64[ns]', freq=None)>>> type(t1[0])     # 每条数据为Timestamp格式<class 'pandas.tslib.Timestamp'>>>> t1[0].value1398902400000000000L

读到这里,这篇“pandas怎么实现datetime64与unix时间戳互转”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯