這裡來介紹一下pandas。由於知識點比較多,決定分幾篇介紹。
import numpy as np
import pandas as pd
#pandas是基於numpy的乙個開源python庫。
#我認為相當於python版excel
#series是一種一維陣列,是基於ndarray設計的,但是他多了乙個功能就是自定義標籤。
#說的明白點就是索引。因此可以通過這個索引來訪問陣列中的資料
#建立語法如下:
#my_series=pd.series(data,index)
countries=['usa','france','china','england']
my_data=[100,200,300,400]
my_series=pd.series(my_data,countries)
my_series
usa 100
france 200
china 300
england 400
dtype: int64
#注意,index是可以省略的,這時系統會自動已預設index進行索引,這時的series就類似陣列了。
pd.series(my_data)
0 100
1 200
2 300
3 400
dtype: int64
#從numpy陣列物件來建立series:
np_arr=np.array(my_data)
pd.series(np_arr)
0 100
1 200
2 300
3 400
dtype: int64
#從字典來建立series似乎更方便
#pandas會自動把字典的鍵值設定成series的index,並將對應的values放在和索引對應的data裡
#這也證明了,pandas的series可以存放各種不同型別的物件。
my_dict=
pd.series(my_dict)
a 50
b 60
c 70
d 80
dtype: int64
#從series中獲取資料,和字典操作基本一樣。
my_dict['b']
60
#對series進行算術運算操作
#基於index進行,可以用加減乘除這樣的運算子對兩個series進行運算。
#結果均以浮點數的形式儲存,以免丟失精度。
series1=pd.series([1,2,3,4],['shandong','wuhan','changsha','hangzhou'])
series2=pd.series([4,7,9,2],['beijing','tianjin','shijiazhuang','hangzhou'])
#如果pandas在兩個series裡找不到相同的index,對應位置就返回空值nan。
series1-series2
beijing nan
changsha nan
hangzhou 2.0
shandong nan
shijiazhuang nan
tianjin nan
wuhan nan
dtype: float64
series1+series2
beijing nan
changsha nan
hangzhou 6.0
shandong nan
shijiazhuang nan
tianjin nan
wuhan nan
dtype: float64
#dataframes
#pandas的dataframe是一種2維資料結構,資料以**的形式儲存,分為若干行和列。
#下面用多個series來構建乙個dataframe。道理很簡單,多個一維陣列組合起來就變成了二維陣列
df=pd.dataframe(df)
name age size
東 齊 32 2332
南 楚 42 4212
西 秦 32 3242
東北 燕 45 4455
北 趙 14 1324
中北 魏 22 2232
中 韓 34 3784
#用乙個字典來建立dataframe
data=
my_df=pd.dataframe(data,index=['first','second','last'])
my_df
name age year
first dwd 32 2012
second dwds 43 2123
last fgerd 1231 2312
my_df[['age','year']]
age year
first 32 2012
second 43 2123
last 1231 2312
#給dataframe增加資料列
#1.可以從頭開始定義乙個pd.series,放到表中.
#2.可以用現有的列來產生需要的新列。
#1my_df['size']=pd.series([323,123,435],['first','second','last'])
my_df
name age year size
first dwd 32 2012 323
second dwds 43 2123 123
last fgerd 1231 2312 435
#2從其他列中創造新列
my_df['pip']=my_df['age']+my_df['size']
my_df=pd.dataframe(my_df)
my_df
name age year size pip
first dwd 32 2012 323 355
second dwds 43 2123 123 166
last fgerd 1231 2312 435 1666
#從dataframe刪除行/列。用drop()函式。
#使用時需要指定具體的刪除方向,axis=0對應的是行row,axis=1對應的是列column。
my_df.drop('pip',axis=1)
name age year size
first dwd 32 2012 323
second dwds 43 2123 123
last fgerd 1231 2312 435
my_df.drop('first',axis=0)
name age year size pip
second dwds 43 2123 123 166
last fgerd 1231 2312 435 1666
未完待續
Pandas基本操作
常用技巧 1 讀取檔案 2 初步設定 最大顯示1000行 最大顯示20列 最大精度 3 去重 所有列相同為重複 k1相同為重複,保留最後乙個 預設保留第乙個 4 顯示當前路徑 5 jupyter下畫圖 6 計算運算時間 7 建立新變數 8 刪除乙個變數 9 刪除一行觀測 10 顯示前三行 11 顯示...
pandas基本操作
pd.read csv filename 從csv檔案匯入資料 pd.read excel filename 從excel檔案匯入資料 pd.read sql query,connection object 從sql表 庫匯入資料 pd.read json json string 從json格式的字...
pandas的基本操作
資料讀寫 讀入mysql資料庫資料 匯入第三方模組 import pymysql 連線mysql資料庫 conn pymysql.connect host localhost user root password test database test port 3306 charset utf8 讀...