Pandas 數(shù)據(jù)處理 | Datetime 在 Pandas 中的一些用法!

Pandas 數(shù)據(jù)處理 | 關(guān)于時間模塊的一些用法

Datatime 是 Python 中一種時間數(shù)據(jù)類型,對于時間格式轉(zhuǎn)換轰坊、存儲是相當方便的铸董,而在 Pandas 中也同樣支持 DataTime 數(shù)據(jù)機制,可以借助它實現(xiàn)許多有用的功能肴沫,例如

1粟害,函數(shù)to_datetime() 將數(shù)據(jù)列表中的 Series 列轉(zhuǎn)化為 datetime 類型,

#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()

#
0   2014-07-08
1   2014-07-07
2   2014-07-03
3   2014-07-02
4   2014-07-01
Name: Date, dtype: datetime64[ns]

2颤芬,DataFrame.resample(freq)悲幅,將數(shù)據(jù)基于時間列以 freq 作為頻度對全局數(shù)據(jù)做重采樣,計算出分段數(shù)據(jù)和站蝠、均值汰具、方差等指標;下面例子中原數(shù)據(jù)的索引是 Datatime 數(shù)據(jù)格式菱魔,以月為時間單位求出各列數(shù)據(jù)的平均值

# Resample the data based the offset,get the mean of data
# BM — bussiness month end frequency

apple_month = apple.resample("BM").mean()
apple_month.head()
Snipaste_2020-07-26_23-30-33.png

下面將根據(jù)幾道練習題郁副,簡單介紹一下 Pandas 是怎么處理 DataFrame 數(shù)據(jù)的

1 , to_datetime() 與 resample() 操作

1.1,讀取數(shù)據(jù)

url = "https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/09_Time_Series/Apple_Stock/appl_1980_2014.csv"
apple =pd.read_csv(url)
apple.head()

可以看到豌习,時間在 Date 這一列數(shù)據(jù)中存谎,但不是標準的 datetime 格式,需要格式處理一下

Snipaste_2020-07-26_23-37-50.png

1.2肥隆,datetime 格式轉(zhuǎn)換

#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()
Snipaste_2020-07-26_23-46-23.png

**1.3既荚,將 Date 列設(shè)為 index **

apple = apple.set_index("Date")
# Set Index
apple.head()

Date 雖然已經(jīng)設(shè)為 index,但是時間排列卻并不清晰栋艳,datetime 數(shù)據(jù)可以直接排序這里用 sort_index(ascending = True) 完成排序

Snipaste_2020-07-26_23-47-36.png

1.4恰聘,對索引進行排序

# Sort The DataFrame based on Date columns
apple.sort_index(ascending = True).head()
Snipaste_2020-07-26_23-51-12.png

1.5,以月為單位對數(shù)據(jù)采樣并獲取mean()

# Resample the data based the offset,get the mean of data
# BM — bussiness month end frequency

apple_month = apple.resample("BM").mean()
apple_month.head()
Snipaste_2020-07-26_23-53-05.png

BM 全稱 Bussiness Month吸占,是商業(yè)月的意思晴叨,在 Pandas 中稱為 DataOffset,除了月之外矾屯,還提供年兼蕊、日、秒件蚕、小時孙技、分..等作為采樣單位,當然也可以自定義

Snipaste_2020-07-27_00-10-00.png

關(guān)于 Data Offset 具體詳細內(nèi)容可參考:https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases排作;

1.6牵啦,計算時間列表中最早日期與最晚日期相差天數(shù)

(apple.index.max()-apple.index.min()).days

#
12261

2,統(tǒng)計近兩年蘋果妄痪、特斯拉哈雏、IBM、LINKD各公司股價

2.1,pandas_datareader 獲取數(shù)據(jù)

import pandas as pd
from pandas_datareader import data as web
import datetime as dt

start = dt.datetime(2019,1,1)
end = dt.datetime.today()
stocks = ['APPLE','TSLA','IBM','LNKD']
df = web.DataReader(stocks,'yahoo',start,end)
df

使用之前請確保pandas_datareader 包已經(jīng)安裝成功裳瘪,這個包幫助我們直接通過爬蟲獲取近兩年的各公司的股票信息履因,后面 start,end 兩個 datetime 時間用于限制時間

結(jié)果顯示似乎這種方法獲取不到到的蘋果和LINKD 的股價(但并不影響盹愚,因為這里主要是學習一下 datetime 在 Pandas 的用法)

Snipaste_2020-07-27_00-30-57.png

2.2栅迄,獲取 股票 數(shù)據(jù)

vol = df['Volume']
vol
Snipaste_2020-07-27_00-37-02.png

**2.3,創(chuàng)建新列皆怕,表示 week毅舆、year **

后面做聚類分析,聚類基準選擇的是 week愈腾、year , 因此需要提前創(chuàng)建好兩列(week憋活,year)數(shù)據(jù)

vol['week'] = vol.index.week
vol['year'] = vol.index.year
vol.head()
Snipaste_2020-07-27_00-40-59.png

2.4,groupby 聚類分組(先 week ,后 year)

week = vol.groupby(['week','year']).sum()

week.head()

這樣就可以很清晰地比對虱黄,2019-2020年對于每一周來說各公司股票的總值變化啦

Snipaste_2020-07-27_00-46-45.png

好了悦即,以上就是本篇文章的所有內(nèi)容啦;最后橱乱,感謝大家的閱讀辜梳!

Reference:

1,https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases

2,https://github.com/guipsamora/pandas_exercises/blob/master/09_Time_Series/Getting_Financial_Data

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泳叠,一起剝皮案震驚了整個濱河市作瞄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌危纫,老刑警劉巖宗挥,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異种蝶,居然都是意外死亡契耿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門螃征,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搪桂,“玉大人,你說我怎么就攤上這事会傲」兀” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵淌山,是天一觀的道長。 經(jīng)常有香客問我顾瞻,道長泼疑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任荷荤,我火速辦了婚禮退渗,結(jié)果婚禮上移稳,老公的妹妹穿的比我還像新娘。我一直安慰自己会油,他們只是感情好个粱,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翻翩,像睡著了一般都许。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫂冻,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天胶征,我揣著相機與錄音,去河邊找鬼桨仿。 笑死睛低,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的服傍。 我是一名探鬼主播钱雷,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吹零!你這毒婦竟也來了急波?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瘪校,失蹤者是張志新(化名)和其女友劉穎澄暮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阱扬,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡泣懊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻惶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馍刮。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窃蹋,靈堂內(nèi)的尸體忽然破棺而出卡啰,到底是詐尸還是另有隱情,我是刑警寧澤警没,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布匈辱,位于F島的核電站,受9級特大地震影響杀迹,放射性物質(zhì)發(fā)生泄漏亡脸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浅碾。 院中可真熱鬧大州,春花似錦、人聲如沸垂谢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滥朱。三九已至根暑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間焚虱,已是汗流浹背购裙。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹃栽,地道東北人躏率。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像民鼓,于是被迫代替她去往敵國和親薇芝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345