簡介
pandas 是基于 Numpy 構(gòu)建的含有更高級數(shù)據(jù)結(jié)構(gòu)和工具的數(shù)據(jù)分析包 類似于 Numpy 的核心是 ndarray(經(jīng)過Numpy封裝的數(shù)組,具備了比普通python數(shù)組更加強大的功能吼渡,后續(xù)我會寫個numpy的教程筆記拔创,供自己備忘,以及分享給大家學習)饵隙,pandas 也是圍繞著 Series 和 DataFrame 兩個核心數(shù)據(jù)結(jié)構(gòu)展開的丽猬,默認導入如下:
from pandas import Series,DataFrame
import pandas as pd
由于通常還需要numpy,所以通常還需要導入numpy混槐,導入格式:
import numpy as np
Series
類似于定長的有序字典,有Index和value轩性。
- 由數(shù)組生成,傳入一個數(shù)組狠鸳,就會自動生成一個Series,第一列為Index,第二列則為值揣苏,Series自動幫助我們生成了index。
-
從ser1的values和index屬性可以拿到Series的values和index的集合件舵。
-
自定義索引(index),我們可以看到卸察,當我們傳入index的時候,第一列的索引不再是0..3了铅祸,而是替代成為我們傳入的a,b,c,d坑质。那當我們傳入的索引的數(shù)量與傳入的values的長度不相等的時候,會發(fā)生什么呢临梗?當然涡扼,會報錯,我傳入的是3個長度的索引盟庞,報錯內(nèi)容:
ValueError: Wrong number of items passed 4, placement implies 3.
當然傳入的索引長度大于values的長度的時候吃沪,報的一樣的錯誤,只是上述的error中的3換成了5什猖。
-
Series取值票彪,因為Series可以理解為定長的有序字典,所以我們?nèi)≈档臅r候傳入的就是鍵值,這里我們可以傳入單個或者多個鍵值不狮。
-
對Series進行過濾或者操作降铸,都會返回一個新的Series,原來的ser2是保持不變的。
-
還可以傳入一個字典直接構(gòu)造Series摇零,這樣大家大概就可以理解我剛剛說的Series可以看成一個定長的字典的道理了吧推掸。
-
當傳入一個字典我們又傳入索引的時候,會發(fā)生什么事情呢遂黍?我們可以看到當字典中有我們傳入的鍵值的時候终佛,則沒什么問題,但是當我們傳入的索引中沒有字典中的鍵值的時候雾家,就變成了NaN铃彰。在pandas中NaN則標示為缺失值的意思。
DataFrame
DataFrame可以看成是以Series組成的字典芯咧,具有行索引和列索引牙捉。
-
用字典創(chuàng)建DataFrame竹揍。
-
按指定列進行排序。
-
如果傳入的columns中沒有指定的key值邪铲,則會變成NaN芬位。
-
通過類似字典的取值方式,我們可以取到一個Series带到,根據(jù)列索引昧碉。
-
通過ix取到一行的數(shù)據(jù),根據(jù)行索引。
-
賦值揽惹。
-
給一列賦單值被饿。
-
給一列賦一組值。
-
-
賦值一個Series,進行精確匹配搪搏,其他值填充為NaN狭握。
-
del用于刪除一列
-
轉(zhuǎn)置操作,即行索引變成列索引疯溺,列索引變成行索引论颅。