與其他編程語言一樣并淋,Python具有大量其他模塊和庫,這些模塊或庫支持該語言的基本框架和功能句喷。
我們將庫視為函數(shù)的集合兔毙,無需編寫自己的算法即可訪問這些函數(shù)以完成某些編程任務(wù)。
比如以下這些模塊:
Numpy?is a library for working with arrays of data.用于處理數(shù)據(jù)數(shù)組的庫锡溯。
Pandas?provide high-performance, easy-to-use data structures and data analysis tools. 提供了高性能哑姚,易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。
Scipy?is a library of techniques for numerical and scientific computing.是用于數(shù)值和科學(xué)計算的技術(shù)庫叙量。
Matplotlib?is a library for making graphs. 是用于制作圖形的庫。
Seaborn?is a higher-level interface to Matplotlib that can be used to simplify many graphing tasks.是Matplotlib的高級接口寺鸥,可用于簡化許多圖形繪制任務(wù)。
Statsmodels?is a library that implements many statistical techniques.是一個實(shí)現(xiàn)許多統(tǒng)計技術(shù)的庫胆建。
現(xiàn)在我們主要來看看pandas這個庫的使用方法
pandas的數(shù)據(jù)結(jié)構(gòu)有三種 分別為 series,dataframe和panel眼坏,對應(yīng)一維,二維檐蚜,三維數(shù)據(jù)沿侈。 其中dataframe最為常用。
1. 錄入文件
df = pd.read_csv("文件名")
2. 查看文件
我們可以通過調(diào)用head()函數(shù)來查看前五行數(shù)據(jù):
df.head()
如果我要查看全部數(shù)據(jù)缀拭,則直接輸入df
栗子(come from coursera):
如果我們要看表頭蛛淋,那就輸入:
df.columns
3.pandas索引
記得之前說過的切片slice嗎,dataframe的索引中勾效,有三個函數(shù)可以用于選擇數(shù)據(jù)
loc(): 使用index來選擇數(shù)據(jù) (based indexing)
iloc():使用整數(shù)索引來選擇數(shù)據(jù) (positional indexing)
ix(): iloc()和loc()的混合 (已廢棄叛甫,不推薦使用)
首先介紹loc(),
語法:
loc [? ? ? :? ? ? ,? ? ? ?]
一般逗號左邊是用來索引行其监,逗號的右邊用來索引列
一般逗號的左邊都是數(shù)字抖苦,右邊則為“列名”毁菱,也可以是bool
索引單列語法:? ? ? ??
df.loc[:,"列名"]
這樣就會輸出所有的這一列的數(shù)據(jù)
索引多列語法:
df.loc[:,[ "列名1", "列名2", "列名3" ]]
這樣就會輸出多行數(shù)據(jù)
索引限定行語法:
數(shù)字也可以放入loc中當(dāng)做索引鼎俘,但是這時數(shù)字指的是標(biāo)簽而不是位置
比如df.loc[數(shù)字:數(shù)字]所輸出的是編程排序里0-9的辩涝,也就是ID從1-10的行
df.loc[:數(shù)字,[ "列名1", "列名2", "列名3" ]]
df.loc[數(shù)字:數(shù)字,[ "列名1", "列名2", "列名3" ]]
另外,在我們進(jìn)行索引的時候捉邢,就像python中的切片一樣,如果是針對行的索引伏伐,那么后邊的:, 是可以省略不寫的材蹬。
還有一種玩法吝镣,就是利用loc函數(shù),根據(jù)某個數(shù)據(jù)來提取數(shù)據(jù)所在的行
舉個例子:
然后闸溃,我們來看看.iloc, .iloc 是基于integer 和bool的切片拱撵,不接受string。
基礎(chǔ)語法:
iloc [? ? ?:? ? ? ,? ? ? :??]
跟loc一樣拴测,iloc逗號左邊是用來索引行,逗號的右邊用來索引列
一般逗號的左右都是數(shù)字
與.loc不同的是寸齐,.iloc里面的數(shù)字指的是位置抄谐,所以遵從我們切片器的規(guī)則扰法,包頭不包尾。( [1:5] 的意思就是塞颁,從第二個到第四個,因?yàn)榘?不包5)
用法:
df.iloc[:4]?代表索引前4行 (編程里的排序0酷窥,1伴网,2,3澡腾,ID為1糕珊,2毅糟,3,4)
df.iloc[4]?代表索引第5行??(編程里的排序0喇肋,1迹辐,2,3右核,4的4代表ID5)
df.iloc[1:5, 2:4]?代表索引2-5行,3-4列(編程里排序的1234菱鸥,也就是ID2345; 編程里排序的23躏鱼,也就是第三第四列)
我們還可以通過輸入df.dtypes 來看看文檔的數(shù)據(jù)類型
也可以通過df.列名.unique 來看看這一列存在的unique值
另外染苛,df.groupby(['列名‘]).size()可以幫我們查看列里面的variable出現(xiàn)的個數(shù)
今天先到這兒,只是對pandas進(jìn)行一個初步的了解躯概,明天繼續(xù)加油呀~