Python Pandas學(xué)習(xí)之基本數(shù)據(jù)操作詳解
為了更好的理解這些基本操作,下面會(huì)通過讀取一個(gè)股票數(shù)據(jù),來進(jìn)行Pandas基本數(shù)據(jù)操作的語法介紹。
# 讀取文件(讀取保存文件后面會(huì)專門進(jìn)行講解,這里先直接調(diào)用下api) data = pd.read_csv("./data/stock_day.csv") ?# 讀取當(dāng)前目錄下一個(gè)csv文件 # 刪除一些列,讓數(shù)據(jù)更簡單些,再去做后面的操作 data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)
1 索引操作
Numpy當(dāng)中我們已經(jīng)講過使用索引選取序列和切片選擇,pandas也支持類似的操作,也可以直接使用列名、行名稱,甚至組合使用。
1.1 直接使用行列索引(先列后行)
舉例:獲取2018-02-27 這天閉盤價(jià),即獲取’2018-02-27’這天的’close’的結(jié)果。
# 直接使用行列索引名字的方式(先列后行) data['close']['2018-02-27'] 24.16 # 不支持的操作 # 錯(cuò)誤 data['2018-02-27']['close'] # 錯(cuò)誤 data[:1, :2]
1.2 結(jié)合loc或者iloc使用索引
獲取從’2018-02-27’:‘2018-02-22’,'close’的結(jié)果
# 使用loc:只能指定行列索引的名字 data.loc["2018-02-25":"2018-02-14", "open":"low"]
# 使用iloc可以通過索引的下標(biāo)去獲取 # 獲取前3天數(shù)據(jù),前5列的結(jié)果 data.iloc[:3, :5] open high close low 2018-02-27 23.53 25.88 24.16 23.53 2018-02-26 22.80 23.78 23.53 22.80 2018-02-23 22.88 23.37 22.82 22.71
1.3 使用ix組合索引
獲取行第1天到第4天,[‘open’, ‘close’, ‘high’, ‘low’]這個(gè)四個(gè)指標(biāo)的結(jié)果
# 使用ix進(jìn)行下表和名稱組合做引 data.ix[0:4, ['open', 'close', 'high', 'low']] # 推薦使用loc和iloc來獲取的方式 data.loc[data.index[0:4], ['open', 'close', 'high', 'low']] data.iloc[0:4, data.columns.get_indexer(['open', 'close', 'high', 'low'])] open close high low 2018-02-27 23.53 24.16 25.88 23.53 2018-02-26 22.80 23.53 23.78 22.80 2018-02-23 22.88 22.82 23.37 22.71 2018-02-22 22.25 22.28 22.76 22.02
2 賦值操作
對DataFrame當(dāng)中的close列進(jìn)行重新賦值為1
# 直接修改原來的值 data['close'] = 1 # 或者 data.close = 1
3 排序
排序有兩種形式,一種對于索引進(jìn)行排序,一種對于內(nèi)容進(jìn)行排序
3.1 DataFrame排序
使用df.sort_values(by=, ascending=)
單個(gè)鍵或者多個(gè)鍵進(jìn)行排序,
參數(shù):
1.by:指定排序參考的鍵
2.ascending:默認(rèn)升序
- ascending=False:降序
- ascending=True:升序
# 按照開盤價(jià)大小進(jìn)行排序 , 使用ascending指定按照大小排序,取前5行數(shù)據(jù) data.sort_values(by="open", ascending=True).head() # 按照多個(gè)鍵進(jìn)行排序 data.sort_values(by=['open', 'high'])
使用df.sort_index給索引進(jìn)行排序
股票的日期索引原來是從大到小,現(xiàn)在重新排序,從小到大。
# 對索引進(jìn)行排序 data.sort_index()
3.2 Series排序
使用series.sort_values(ascending=True)進(jìn)行排序
series排序時(shí),只有一列,不需要參數(shù)。
data['p_change'].sort_values(ascending=True).head() 2015-09-01 ? -10.03 2015-09-14 ? -10.02 2016-01-11 ? -10.02 2015-07-15 ? -10.02 2015-08-26 ? -10.01 Name: p_change, dtype: float64
使用series.sort_index()進(jìn)行排序,和Dataframe方法一致
# 對索引進(jìn)行排序 data['p_change'].sort_index().head() 2015-03-02 2.62 2015-03-03 1.44 2015-03-04 1.57 2015-03-05 2.02 2015-03-06 8.51 Name: p_change, dtype: float64
到此這篇關(guān)于Python Pandas學(xué)習(xí)之基本數(shù)據(jù)操作詳解的文章就介紹到這了,更多相關(guān)Python Pandas數(shù)據(jù)操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)從pdf文件中提取文本,并自動(dòng)翻譯的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)從pdf文件中提取文本,并自動(dòng)翻譯的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11利用python計(jì)算windows全盤文件md5值的腳本
這篇文章主要介紹了利用python計(jì)算windows全盤文件md5值的腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Python ATM功能實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Python ATM功能實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis)
本文主要介紹了python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Python Dataframe 指定多列去重、求差集的方法
今天小編就為大家分享一篇Python Dataframe 指定多列去重、求差集的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類
這篇文章主要為大家介紹了深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01