返回顶部
首页 > 资讯 > 后端开发 > Python >pandas实现datetime64与unix时间戳互转
  • 134
分享到

pandas实现datetime64与unix时间戳互转

2024-04-02 19:04:59 134人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录datetime64与unix时间戳互转unix 时间戳与pandas中的Timestamp互转datetime模块pandas默认时间格式转换为unix间戳举个栗子样例date

datetime64与unix时间戳互转

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

unix 时间戳与pandas中的Timestamp互转

import time
def 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 = 1514737265
print(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 datetime
import pandas as pd
startTime = 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.year
month =  pd_time.month
day = pd_time.day
date =  pd_time.date
hour =  pd_time.hour
minute =  pd_time.minute
seconds =  pd_time.second
print(year)
print(month)
print(day)
print(hour)
print(minute)
print(seconds)

输出:

2018
1
1
0
21
5

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

Pandas读取csv文件时,时间会自动显示为‘YYYY-MM-DD HH:MM:SS’的格式,那么如果想要将这个时间转换为 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].value
1398902400000000000L

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: pandas实现datetime64与unix时间戳互转

本文链接: https://lsjlt.com/news/119421.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pandas实现datetime64与unix时间戳互转
    目录datetime64与unix时间戳互转unix 时间戳与pandas中的Timestamp互转datetime模块pandas默认时间格式转换为unix间戳举个栗子样例date...
    99+
    2024-04-02
  • pandas怎么实现datetime64与unix时间戳互转
    本文小编为大家详细介绍“pandas怎么实现datetime64与unix时间戳互转”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas怎么实现datetime64与unix时间戳互转”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-07-02
  • C#实现时间戳与标准时间的互转
    目录前言1.标准时间转时间戳的方法2.时间戳转为标准时间3.TimeZone.CurrentTimeZone.ToLocalTime()方法补充前言 C# 时间戳与 标准时间的转其实...
    99+
    2024-04-02
  • mysql UNIX时间戳与日期的相互转换
    UNIX时间戳转换为日期用函数: FROM_UNIXTIME()select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP(...
    99+
    2024-04-02
  • python unix时间戳与正常时间转
            有时候业务需要,需要把正常的时间格式与unix时间戳格式进行转换。       在python中转化方式如下,直接利用time中的函数: #! /usr/bin/env python #coding:utf-8 impo...
    99+
    2023-01-31
    时间 python unix
  • 【python】时间与时间戳互相转换
    全文一览 一、时间戳转换为时间1.0 获取时间戳1.1 datetime 法1.2 time 法 二、时间转化为时间戳 时间戳 : ,1683876941.119018 时间格式: ...
    99+
    2023-09-02
    python 数据结构 开发语言
  • php时间如何转unix时间戳
    这篇文章主要介绍“php时间如何转unix时间戳”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php时间如何转unix时间戳”文章能帮助大家解决问题。使用 time() 函数获取当前时间的 Unix...
    99+
    2023-07-05
  • C语言Unix时间戳与本地时间的转化
    本篇内容主要讲解“C语言Unix时间戳与本地时间的转化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言Unix时间戳与本地时间的转化”吧!前言我们平常说时间都说的几点几分几秒,星期几,但是在...
    99+
    2023-06-06
  • unix时间戳怎么转换成时间
    在Unix系统中,时间戳表示从1970年1月1日00:00:00 UTC至当前时间的秒数。要将Unix时间戳转换为常规时间格式,可以...
    99+
    2024-03-01
    unix
  • php实现日期转unix时间戳的方法
    本文将为大家详细介绍“php实现日期转unix时间戳的方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php实现日期转unix时间戳的方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下...
    99+
    2023-06-06
  • Java中实现时间与时间戳的转换
    public static void main(String[] args) { // 格式化日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ...
    99+
    2023-09-30
    java python 开发语言
  • Java怎么与Unix时间戳进行转换
    今天就跟大家聊聊有关Java怎么与Unix时间戳进行转换,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方法实现    public ...
    99+
    2023-05-30
    java unix 时间戳
  • 如何将 Unix 时间戳转换为 MySQL 时间戳值?
    MySQL 借助 FROM_UNIXTIME() 函数将 Unix 时间戳转换为时间戳数据类型值。示例mysql> Select FROM_UNIXTIME(1508622563); +-------------------...
    99+
    2023-10-22
  • php 时间戳怎么互转
    在开发网站或者互联网应用程序的过程中,我们经常需要将任意时间转换为时间戳或者将时间戳转换为具体的时间。PHP是一种使用广泛的脚本语言,提供了很多方便的函数来完成这些转换操作。下面我们将介绍如何在PHP中实现时间戳和具体时间的互转。将时间转换...
    99+
    2023-05-14
    php
  • php时间戳如何互转
    这篇“php时间戳如何互转”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php时间戳如何互转”文章吧。将时间转换成时间戳PH...
    99+
    2023-07-05
  • php怎么转换unix时间戳
    在开发网站和应用程序时,我们经常需要处理时间和日期。在PHP中,时间戳是一个很常见的时间格式,它表示自1970年1月1日0时0分0秒(UTC)起已经经过的秒数。但是,Unix时间戳显示的时间格式并不人性化,因此在实际应用中我们需要将其转换为...
    99+
    2023-05-14
    php时间戳 php
  • Unix、UTC、GPS时间戳及转换
    UTC时间 UTC时间的英文全称:Universal Time Coordinated,中文名称:协调世界时。俗的理解为,这个时间是全世界通用的,即全世界都公用的一个时间。可以认为格林威治时间就是时间协调时间(GMT=UTC),格林威治时间...
    99+
    2023-08-18
    unix linux 服务器
  • JS实现获取时间已经时间与时间戳转换
    目录获取当前月的第一天获前取n天日期根据两个日期,判断相差天数根据bai两个日期,判断相差月数获取几个月前的输入日期时间戳转换时间时间戳转换时间 - 无时分秒时间戳转换时间-无日期获...
    99+
    2024-04-02
  • pandas读取Excel批量转换时间戳怎么实现
    这篇文章主要介绍“pandas读取Excel批量转换时间戳怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pandas读取Excel批量转换时间戳怎么实现”文章能帮助大家解决问题。一、安装pi...
    99+
    2023-07-05
  • MSSQL Server 13位时间戳互转
    1 --普通时间 转 13 位时间戳 2 SELECT CONVERT(BIGINT,DATEDIFF(MI,"1970-01-01 00:00:00.000", GETUTCDATE())) * 60000 + DAT...
    99+
    2020-03-15
    MSSQL Server 13位时间戳互转
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作