欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

《Python數(shù)據(jù)科學入門》之Series或Frame數(shù)據(jù)類型(第6章)

系統(tǒng) 2012 0

Python數(shù)據(jù)科學入門

Dmitry Zinoviev著
熊子源 譯


第6章 使用Series和frame

Pandas模塊的初中時為了給Python添加Series和frame兩個抽象的數(shù)據(jù)結構,它們其實是Python的競爭對手、最早的數(shù)據(jù)科學語言——R語言的核心。

Pandas的frame本質是一個“智能”電子表格:具有標簽、列(變量)、行(觀測記錄),以及大量內置操作的表。(Series是一個只有一列的frame)表的數(shù)據(jù)部分(單元格)以numpy數(shù)組的方式實現(xiàn)。

第31單元 pandas數(shù)據(jù)結構

Series
Series是一維的數(shù)據(jù)矢量。是同構的:Series中左右數(shù)據(jù)項必須是相同的數(shù)據(jù)類型。
Series中的函數(shù):

  • head() 返回Series中前五行數(shù)據(jù)(默認5行)
  • tail() 返回Series中后五行數(shù)據(jù)(默認5行)

Frame
Frame是一個行和列都具有標簽的表。可以通過二維numpy數(shù)組、元組列表、Python字典或一個frame構造出一個新的frame。

第32單元 數(shù)據(jù)重塑

索引:
Frame的索引是一組分配給frame行的標簽集合。

reset_index() 刪除現(xiàn)有索引
set_index() 建立一個新索引
drop() 返回一個刪除了一行或若干行的frame的副本。

重建索引:
從現(xiàn)有的frame或series中選擇一定的行排列、列排列或者行和列排列,來創(chuàng)建新的frame或Series。

分層索引:
也稱為多級索引或多重索引。由以下三個列表組成:

  • 級別名稱
  • 每個級別可能存在的所有標簽
  • Frame或Series中每一項的實際值的列表。

MultiIndex.from_tuples() 使用帶有標簽的元組和可選的級別名稱列表生成多級索引。

堆疊和旋轉:
使用多級的列名可以將多級索引完全或部分扁平化,相反,使用多級索引也可以將多級的列名完全或部分扁平化。

stack() 增加索引的級別數(shù),同時減少列名的級別數(shù)。
unstack() 增加列名的級別數(shù),同時減少索引的級別數(shù)。
pivot(index,columns,values) 將frame轉換為另一個frame,新的frame使用列索引作為新的索引,columns作為新的列名列表,values作為數(shù)據(jù)。

第33單元 處理缺失數(shù)據(jù)

Pandas沿用了傳統(tǒng)的numpy.nan(第5章-第25單元)來表示缺失數(shù)據(jù)。Pandas還提供了識別和插補缺失值的函數(shù)。
缺失值必須被刪除或者插補(將其替換成有意義的值)。

刪除缺失值:
dropna()函數(shù) 可以刪除部分(how=”any”,默認)或全部(how=”all”)無效的列(axis=0,默認)或行(axis=1),并返回“干凈的”frame對象。

插補缺失數(shù)據(jù):
兩種常見的插補技術是使用常數(shù)(0,1)和“干凈”值得平均數(shù)替換缺失值。
isnull()和notnull() 是互補的。當某個值是nan時,isnull()返回True;當某個值不是nan時,notnull()返回True。
根據(jù)IEEE 754的浮點數(shù)標準,表達式 np.nan==np.nan為False ,這使得直接比較是不可能的!

替換數(shù)據(jù):
replace(val_or_list,new_val)函數(shù) 將一個值或值列表替換成一個新的值或值列表,列表的長度必須一樣。除非傳遞inplace=True參數(shù)(表示在原始表中修改),負責該函數(shù)會返回一個新的frame或series。

第34單元 組合數(shù)據(jù)

合并:
如果兩個frame具有一個相同的列,就可以將該列上的frame合并。即使沒有相同名稱的列,也可以指定其他列作為鍵。

            
              df = pd.merge(df1,df2,on=”key”)
df = pd.merge(df1,df2,left_on=”key1”,right_on=”key2”)

            
          

如果要在索引列而不是一般的列上合并,使用可選參數(shù)left_index=True和right_index=True實現(xiàn)。

join()和merge() 這兩個函數(shù)使用同一個可選參數(shù)how,它的可接受參數(shù)為“l(fā)eft”(join()的默認值),“right”,“inner”,“outer”(merge()的默認值)

連接:
Concat()函數(shù) 通過一組frame彼此“豎直”(axis=0,默認值)或“水平”(axis=1)放置在一起來連接它們,并返回一個新的frame。

            
              Pd.concat([alco2009,population],axis=0).tail()

            
          

如果frame的維度不匹配,pandas就會在所謂的“空位”處加入具有缺失值的行或列。

刪除重復行:

            
              duplicated([subset],keep=””)

            
          

返回一個布爾型的Series,表示在所有列或subset(是一個列名稱組成的序列)表示的列中是否有重復的行。Keep表示控制標記的重復行是第一個重復行(“first”)、最后一個重復行(“l(fā)ast”)、每個重復行(“True”)都標記。

            
              drop_duplicates([subset],keep=””,Inpalce=True)

            
          

返回一個刪除了所有列或subset(是一個列名稱組成的序列)表示的列中重復行的frame或Series。Keep表示控制刪除的行是第一個重復行(“first”)、最后一個重復行(“l(fā)ast”)、每個重復行(“True”)都刪除。Inpalce=True可以從原始對象中刪除重復項。

第35單元 數(shù)據(jù)的排序和描述

排序和分級:
sort_index()返回按照索引排序的frame。相關參數(shù)說明如下:

ascending (默認值為True(升序))來控制升序或降序;
na_position (取值為“first”或”last“)指定值為nan的單元在排序后的位置,
numeric_only 僅將等級限制為數(shù)值
na_option (取值為“top”,”bottom”或“keep”)設定nan的處理方式:將它們轉移到新frame的頂部、底部或保留原始位置。

描述性統(tǒng)計量:

argmax() 找出最大值首次出現(xiàn)的索引位置(針對series)
idxmax() 找出最大值首次出現(xiàn)的索引位置(針對frame)
cumsum() 累積和
cumprod() 累計乘積
cummin() 累積最小值
cummax() 累積最大值
diff() 計算連續(xù)的列或Series項之間的滑動值

唯一性、計數(shù)、會員資格:

unique() 計算不同值的組成的數(shù)組,并能給出每個不同值出現(xiàn)的次數(shù)。用在Series中
value_counts() 計算不同值的組成的數(shù)組,并能給出每個不同值出現(xiàn)的次數(shù)。用在frame中
isin() 專門為Series和frame定義的。它返回一個與數(shù)據(jù)大小相同的布爾型的Series或frame,用于確定Series或frame的每一項是否存在于某個集合中。

第36單元 數(shù)據(jù)轉換

數(shù)據(jù)聚合:

groupby() 通過一個或多個分類的鍵值將行分到不同的組中,從而實現(xiàn)對frame的分割。
聚合函數(shù)包括以下幾種:

count() 返回組中的行數(shù)
sum() 返回組中數(shù)字行的總和
mean() 返回組中所有行相應的統(tǒng)計量度量
median() 返回組中所有行相應的統(tǒng)計量度量
std() 返回組中所有行相應的統(tǒng)計量度量
var() 返回組中所有行相應的統(tǒng)計量度量(沒錯,這四個函數(shù)效果一模一樣)
min() 返回組中最小的行
max() 返回組中最大的行
prod() 返回組中數(shù)字行的乘積
first() 返回組中的第一行(用在frame中)
last() 返回組中的最后一行(用在frame中)

離散化:

離散化是指將連續(xù)變量轉化為離散(分類)變量,通常用于直方圖和機器學習。
qcuts() 與cuts()類似,不同的是qucts()使用分位數(shù)而不是區(qū)間寬度進行分割。可以用它來計算分位數(shù)。
qet_dummies() 將數(shù)組、series或frame轉換為與原始對象擁有相同索引的另一個frame,每個列對應一個虛擬變量。

映射:

map() 將任意的單參數(shù)函數(shù)應用于選中列中的每一個元素。(非常低效)

第37單元 掌握pandas的文件讀寫功能

Pandas支持:

  • 自動索引和列名提取
  • 數(shù)據(jù)類型推斷、數(shù)據(jù)轉換和缺失值的檢測
  • 日期時間解析
  • 消除“不干凈”的數(shù)據(jù)
  • 數(shù)據(jù)分塊

讀取CSV和表格文件:

read_csv() 根據(jù)文件名或打開的文件句柄,從指定的CSV文件中讀取一個frame。該函數(shù)具有近50個可選參數(shù)。
read_csv()函數(shù)中重要參數(shù)說明:

sep/delimiter 列分隔符,可以接受正則表達式
header 作為列名的行號(如果有自己的行號,則傳遞None)
index_col 作為索引的列名(False表示默認數(shù)字索引)
skiprows 要跳過的文件頭行號或行號列表
thousands 表示大數(shù)時使用的千位分隔符
names 列名列表
na_values 用于處理缺失數(shù)據(jù)的字符串或字符串列表

"What you get is what you get.What you do with what you get, that's more the point."--《City of Ember 》


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本二本三本二区 | 久久国产这里只精品免费 | 99久久精品国产一区二区三区 | 亚洲欧美一区二区三区另类 | 精品国产成a人在线观看 | 欧美激情综合网 | 久久久国产视频 | 久久亚洲国产精品无码一区 | 天天操天天操天天操天天操 | 97风流梦电影| 国产美女福利视频福利 | 国产福利不卡 | 欧美午夜视频一区二区三区 | 国产一区二区三区免费播放 | 日本在线观看视频网站 | 国产成人啪精品视频免费网站软件 | 色婷婷社区 | 欧美精品区 | 九草在线视频 | 色综合色综合 | 欧洲精品欧美精品 | 一级一片免费看 | 色屁屁www免费看视频影院 | www国产成人免费观看视频,深夜成人网 | 天天综合色天天综合 | 日韩欧美精品在线 | 天天做夜夜操 | 国产成人综合AV在线观看不止 | 亚洲综合在线一区 | 日韩经典中文字幕 | 亚洲一区在线日韩在线深爱 | 天干天夜啪天天碰 | 韩国三级bd高清中字木鱼天 | 久久国产乱子免费精品 | 一区二区三区欧美在线 | 成人资源在线观看 | 国产拍视频 | 亚洲免费在线视频 | 超碰一区二区三区 | 日韩美在线 | 日本在线你懂的 |