pandas學習筆記
pandas是什么?為什么要用pandas?
pandas是一個第三方python庫,有強大的數據加載,操作,分析功能。
可以認為pandas是python中的數據庫。
如何使用pandas?
pandas主要有兩種數據存儲類型:Series 和 DataFrame,分別是二維數據和三維數據。
接下來學習如何加載,讀取,操作,分析。
Series
加載
Series 和 dict 是很像的。
普通方式:
x=pd.Series([1, 2, 3], index=[1, 2, 'a'])
而index可以省略,這時候默認為從 0 開始編號的數字。
dict方式:
x=pd.Series({'a':1, "b":2},index=['b', 'c'])
這里的index可以省略,默認為字典的keys()。但是如果不省略,那么索引就一定只是index里面的,比如上面就只剩下 b。同時上面的 c 在字典中沒出現,這時候在 Series 會保存為 NaN,pandas 的數據存儲允許某些位置數據缺失。
讀取
直接索引訪問,所以說和dict很像:
print(x['a'])
這時候輸出的是一個元素對象。
可以使用切片操作:
print(x[:1])
可以使用索引列表:
print(x[['a', 'b']])
這兩個的結果都是一個 Series 對象。
分析

這里有些常用的 Series 屬性。
isnull()&nonull()檢測缺失值方法。
s=pd.Series([1,2,5,None])
print(pd.isnull(s)) #是空值返回True
print(pd.notnull(s)) #空值返回False
output:
0 False
1 False
2 False
3 True
dtype: bool
notnull():
0 True
1 True
2 True
3 False
dtype: bool
操作
還沒學。
DataFrame
通識
DataFrame是一個既有 Index 又有 Column 的二維表。允許表內的數據是 NaN。

創建
pd.DataFrame( data, index, columns, dtype, copy)
data 表示數據,index 表示行標簽,columns 表示列標簽,dtype 表示數據類型,copy 表示是否將 data 復制一份再構造。
下面解析 data 的幾種形式。
第一種,二維列表:
x=pd.DataFrame([[1, 2, 3], [3, 4, 5]])
這樣構造出一個兩行三列,行標簽和列標簽都默認的表。
第二種,字典嵌套列表:
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
這里列標簽就會變成 Name 和 Age。可以聯想到構建 Series 可以用普通字典。想法都是把字典的鍵值作為列標簽/索引。
第三種,列表嵌套字典:
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
這里第一行第三列會使 NaN。
第三種,字典嵌套 Series:
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
聯想到 Series 和字典差不多,所以字典嵌套字典也行。
總之,第一層是列標簽,第二層是行標簽。
讀取
列讀取方法。
通過列標簽取出一個 Series,再用 Series 方法取出某個元素。
x=pd.DataFrame([[1,2],[3,4]]])
x[0] # 一個 Series
x[[0, 'a']] # 一個子 DataFrame
x[0][0]
行讀取方法。
一樣的,取出來是 Series。
x=pd.DataFrame([[1,2],[3,4]]])
x.loc[0]
兩者都可以實現切片于 [] 列表索引,和 Series 是一樣的。
操作
列添加方法。
像字典一樣直接賦值就好了。
x=pd.DataFrame([[1,2],[3,4]]])
x['a']=pd.Series([1, 2])
x['b']=x[0]+x[1]
而且還能用向量化加法,因為 Series 是基于 ndarray 實現的。
列刪除方法,del 或者 pop。
del x['a']
x.pop('a')
行添加方法。
x.append(y) # y 是一個 DataFrame

浙公網安備 33010602011771號