-
What is Pandas
如果用 python 的列表和字典來作比較, 那麼可以說 Numpy 是列表形式的,沒有數值標籤,而 Pandas 就是字典形式。Pandas是基於Numpy構建的,讓Numpy爲中心的應用變得更加簡單。
引自 Pandas 基本介紹
在計算機編程中,pandas是爲Python編程語言編寫的用於數據處理和分析的軟件庫。特別是,它提供了用於處理數字表和時間序列的數據結構和操作。它是三項BSD許可下發布的免費軟件。[2]該名稱源自術語“ 面板數據 ”,這是數據集的計量經濟學術語,其中包括同一個人在多個時間段內的觀察結果。[3]
-
導入支持包
import pandas as pd import numpy as np # 設置了seed之後每次生成的隨機數據將都是一樣的 np.random.seed(0) # 可隨便傳入一個int值
-
pandas.Series()
Pandas將一維數據封裝成一個
pandas.Series()
對象通過代碼來說明Series類的用法
# 可以理解爲一串帶索引的數據 index = np.arange(100,106) s = pd.Series([1, 3, 6, np.nan, 44, 1], index=index) # np.nan差不多就是None print(s) """ 100 1.0 101 3.0 102 6.0 103 NaN 104 44.0 105 1.0 dtype: float64 """ # 如不指定index,會默認生成從0開始的整數索引
-
pandas.DataFrame()
Pandas將二維數據封裝成了
pandas.DataFrame()
對象- DataFrame的一種生成方式——通過傳入字典
dfdata = pd.DataFrame({ 'key': ['K0', 'K1', 'K2', 'K3'], # 每個元素是一列,key即列屬性名;value是列屬性值 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'] }) # key A B # 0 K0 A0 B0 # 1 K1 A1 B1 # 2 K2 A2 B2 # 3 K3 A3 B3
- DataFrame的另一種生成方式——傳入一個矩陣,以及DataFrame類型數據的處理方式
dates = pd.date_range('20200214', periods=6) df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd']) # index爲行索引 # columns爲列索引 # 如不指定會生成從0開始整數索引 # print(df) """ a b c d 2020-02-14 -1.252337 0.292209 -0.574282 -1.169555 2020-02-15 -0.690798 -0.336620 -1.114641 0.109090 2020-02-16 -1.050227 -0.934658 1.049743 0.118560 2020-02-17 0.507933 -1.418839 0.479424 -0.935449 2020-02-18 0.468655 0.163571 1.051186 -0.838357 2020-02-19 -0.069228 0.180696 -0.849428 -0.978065 """ # 獲得列,每列是一個Series # print(type(df['a'])) # print一列的type # print(df['a']) # print一列的數據 ''' <class 'pandas.core.series.Series'> 2020-02-14 -0.919781 2020-02-15 0.114945 2020-02-16 1.928675 2020-02-17 -1.004000 2020-02-18 1.099467 2020-02-19 1.029294 Freq: D, Name: a, dtype: float64 ''' # print(type(df[:'2020-02-14'])) # print一行的type # print(df[:'2020-02-14']) # print一行的數據 ''' <class 'pandas.core.frame.DataFrame'> a b c d 2020-02-14 0.129921 0.330787 1.224564 1.931845 ''' # print行索引 print(df.index) # DatetimeIndex(['2020-02-14', '2020-02-15', '2020-02-16', '2020-02-17', # '2020-02-18', '2020-02-19'], # dtype='datetime64[ns]', freq='D') # print列索引 print(df.columns) # Index(['a', 'b', 'c', 'd'], dtype='object') # 通過.values可以把pd.DataFrame()格式的數據轉成np.array print(type(df.values)) print(df.values) # <class 'numpy.ndarray'> # [[ 0.92548393 0.18265364 0.5358075 -0.84910901] # [ 1.62660144 -0.33015259 -0.75008368 0.94722092] # [-0.83908171 1.11952036 0.08644712 -0.96739122] # [ 1.19504034 -0.49438307 -0.31389145 0.45401724] # [ 0.33769456 0.11381624 -0.86673364 1.73489697] # [-0.33031513 0.09167725 -0.17211572 0.44306859]] # 對pd.DataFrame()中的數據進行統計 print(df.describe()) # a b c d # count 6.000000 6.000000 6.000000 6.000000 # mean 0.332788 0.106238 0.400794 0.011054 # std 1.238534 1.822945 1.426681 0.338564 # min -1.551920 -2.283634 -1.469739 -0.476852 # 25% -0.387510 -1.444339 -0.720901 -0.128311 # 50% 0.685510 0.796483 0.714214 -0.025572 # 75% 1.005481 1.579427 1.388588 0.175207 # max 1.810674 1.678970 2.031968 0.514741 # 對pd.DataFrame()中的數據進行翻轉/轉置 print(df.T) # 2020-02-14 2020-02-15 2020-02-16 2020-02-17 2020-02-18 2020-02-19 # a 0.037116 -0.429569 0.215592 0.043167 0.817896 0.924043 # b 0.136156 0.209794 -1.753687 -0.725070 1.502126 0.576307 # c 1.251914 -1.965787 -0.052305 1.051349 0.982595 0.939506 # d 0.626040 -0.367166 0.054540 1.529206 -1.221776 -1.038283 # 按行/列的索引排序 # (就是按索引的名稱排序,不是按值排序,字符串按字母順序,數字按大小) print(df.sort_index(axis=1, ascending=False)) # axis=0:按第一個維度(行)索引排序; axis=1:按第二個維度(列)索引排序 # ascending: bool值,是否按升序排列,True爲升序,False爲倒序 # d c b a # 2020-02-14 2.240893 0.978738 0.400157 1.764052 # 2020-02-15 -0.151357 0.950088 -0.977278 1.867558 # 2020-02-16 1.454274 0.144044 0.410599 -0.103219 # 2020-02-17 0.333674 0.443863 0.121675 0.761038 # 2020-02-18 -0.854096 0.313068 -0.205158 1.494079 # 2020-02-19 -0.742165 0.864436 0.653619 -2.552990 # 按某行某列的值進行排序 print(df.sort_values(by='2020-02-15', axis=1, ascending=False)) # by 傳值爲行或列的索引名稱,注意應該和axis對應 # axis 傳值爲數據的維度,=0時by應該傳列的索引,對行進行排序;=1時傳行的索引,對列進行排序 # ascending bool值,是否進行升序,False表示倒序排列
-
參考文獻
程序主要來自 Pandas 基本介紹,略有改動
Pandas中的數據形式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.