Pandas模塊的核心操做對象就是對序列(Series)和數據框(Dataframe)。序列能夠理解爲數據集中的一個字段,數據框是值包含至少兩個字段(或序列)數據庫
的數據集。數組
構造序列函數
1.經過同質的列表或元組構建code
2.經過字典構建對象
3.經過numpy中的一維數組構建索引
4.經過數據框Dataframe中的某一列構建數學
例如:pandas
import pandas as pd
import numpy as np
gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
gdp2 = pd.Series({'北京':2.8,'上海':3.01,'廣東':8.99,'江蘇':8.59,'浙江':5.18})
gdp3 = pd.Series(np.array((2.8,3.01,8.99,8.59,5.18)))
print(gdp1)
print(gdp2)
print(gdp3)import
out:變量
0 2.80 1 3.01 2 8.99 3 8.59 4 5.18 dtype: float64 北京 2.80 上海 3.01 廣東 8.99 江蘇 8.59 浙江 5.18 dtype: float64 0 2.80 1 3.01 2 8.99 3 8.59 4 5.18 dtype: float64
如上所示:無論是列表,元組,仍是一維數組,構造的序列結果樣式會產生兩列,第一列屬於序列的索引列(也能夠理解爲行號)
,自動從0開始,第二列纔是序列的實際值。經過字典構造的序列就是第二個打印樣式,仍然包含兩列,所不一樣的是第一列再也不是行號,而是具體的行名稱(label),對應到字典中的鍵,第二列是序列的實際值,對應到字典的值;
序列與一維數組有極高的類似性,獲取一維數組元素的全部索引方法均可以用到序列上,並且數組的數學和統計函數也一樣能夠用到序列上。另外序列會有更多的其餘處理方法,以下:
import pandas as pd
import numpy as np
gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
gdp2 = pd.Series({'北京':2.8,'上海':3.01,'廣東':8.99,'江蘇':8.59,'浙江':5.18})
gdp3 = pd.Series(np.array((2.8,3.01,8.99,8.59,5.18)))
# print(gdp1)
# print(gdp2)
# print(gdp3)
print('行號風格的序列: \n ',gdp1[[0,3,4]]) #取出gdp1中的第1 4 5個元素
print('行名稱風格的序列: \n',gdp2[[0,3,4]]) #取出gdp2中第 1 4 5個元素 取出的是字典的鍵值對
print('行名稱風格的序列:\n',gdp2[['上海','江蘇','浙江']]) # 取出的是鍵值對
print('經過numpy函數:\n',np.log(gdp1)) #能夠用函數的方式直接取出相應對應的結果的值,經過numpy的方式須要經過其索引
print('經過numpy函數:\n',np.mean(gdp1))
print('經過序列的方法:\n',gdp1.mean()) #能夠看出序列也是支持方法的使用的
out:
行號風格的序列: 0 2.80 3 8.59 4 5.18 dtype: float64 行名稱風格的序列: 北京 2.80 江蘇 8.59 浙江 5.18 dtype: float64 行名稱風格的序列: 上海 3.01 江蘇 8.59 浙江 5.18 dtype: float64 經過numpy函數: 0 1.029619 1 1.101940 2 2.196113 3 2.150599 4 1.644805 dtype: float64 經過numpy函數: 5.714 經過序列的方法: 5.714
針對上面的代碼須要說明幾點,若是序列是行名稱風格,既可使用位置(行號)索引,又可使用標籤(行名稱)索引;若是須要對序列進行數序函數的運算,通常首選numpy模塊,由於pandas模塊在這方面比較缺少;若是是對序列作統計運算,既可使numpy模塊中的函數,也可使用序列中的方法。通常首選
序列方法,由於序列方法更加豐富一些,如計算序列的偏度,峯度,而Numpy是沒有這樣的函數的。
構造數據框
數據實質上就是一個數據集,數據集的行表明每一條觀測,數據集的列則表明各個變量。在一個數據框中能夠存放不一樣數據類型的序列,如整數型,浮點型,字符型和日期時間型,而數組和序列則沒有這樣的優點,由於他們只能存放同質數據。構造一個數據庫能夠應用以下方式:
1.經過嵌套的列表或元組構造
2.經過字典構造
3.經過二維數組構造
4.經過外部數據的讀取構造。
示例:
import pandas as pd
import numpy as np
df1 = pd.DataFrame([['張三',23,'男'],['李四',27,'女'],['王五',26,'女']])
df2 = pd.DataFrame({'姓名':['張三','李四','王五'],'年齡':[23,27,26],'性別':['男','女','女']})
df3 = pd.DataFrame(np.array([['張三',23,'男'],['李四','27','女'],['王五',26,'女']]))
print('嵌套列表構造數據框:\n',df1)
print('字典構造數據框:\n',df2)
print('二維數組構造數據框:\n',df3)
out:
嵌套列表構造數據框: 0 1 2 0 張三 23 男 1 李四 27 女 2 王五 26 女 字典構造數據框: 姓名 年齡 性別 0 張三 23 男 1 李四 27 女 2 王五 26 女 二維數組構造數據框: 0 1 2 0 張三 23 男 1 李四 27 女 2 王五 26 女
構造數據框須要使用到Pandas模塊中的DataFrame函數,若是經過嵌套列表或元組構造數據框,則須要將數據框的每一行觀測座位嵌套列表或元組的元素;若是經過二維數組構造數據框,則須要將數據框的每一行寫入到數組的行中;若是經過字典構造數據框,則字典的鍵構成數據框的變量名,對應的值構成數據的觀測。儘管上面的代碼均可以構造數據框,可是講嵌套列表,元組或二維數組轉換爲數據框時,數據框是沒有具體的變量名的,只有從0到N的列號。因此,若是須要手工構造數據框的話,通常首選字典方法。
外部數據的讀取
外部數據的讀取來構造數據框的內容會比較多,下一篇再來記錄...