<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在用pandas處理資料時,經常要處理一些時間型別資料,經常把pandas時間型別與datetime模組,還有python自帶的time模組搞混淆,記錄之。
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
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讀取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
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45