外部資料匯入
匯入excel檔案
pandas匯入excel用read_excel()方法:
import pandas as pd
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8')複製程式碼
姓名 年齡 工作 工資
0 張三 25 學生 200
1 李四 24 工人 3000
2 王偉 28 NaN 5000
3 王二毛 22 自由職業 6000複製程式碼
第一個引數是路徑,既可以使用絕對路徑又可以使用相對路徑,如果檔名含有漢字,注意指定設定一下屬性encoding = 'utf-8'
,另設定sheet_name
指定具體的Sheet名字,也可傳入sheet的順序,從0開始。
excel_file1 = pd.read_excel('data/test.xlsx',sheet_name = 0)複製程式碼
指定索引
列索引預設從0開始,透過index_col
設定,header
設定行索引。
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8',index_col=0)複製程式碼
年齡 工作 年資
姓名
張三 25 學生 200
李四 24 工人 3000
王偉 28 NaN 5000
王二毛 22 自由職業 6000複製程式碼
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8',header=1)複製程式碼
張三 25 學生 200
0 李四 24 工人 3000
1 王偉 28 NaN 5000
2 王二毛 22 自由職業 6000複製程式碼
指定索引列
有時本地檔案列數太多,可以設定usercols
指定匯入的列,也可以列表形式傳入多個值,表示傳入哪些列。
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8',usecols=[0,2])複製程式碼
姓名 工作
0 張三 學生
1 李四 工人
2 王偉 NaN
3 王二毛 自由職業複製程式碼
常用方法
shape()
可以獲取excel檔案的行和列,以元祖形式返回;info()
獲取資料型別;astype()
可轉換列裡面的資料型別,括號裡是要轉換的目標型別;如df[列2].astype('float64')
;df['列'].dtype
可檢視列的型別isnull()
判斷哪個值是缺失值;dropna()
刪除有缺失值的行,返回刪除後的資料,傳入引數how=all,要全為空值才會刪除;fillna()
括號內可直接填入要要填充的值,也可指定列填充,以字典形式傳參;drop_duplicates()
預設對所有重複值判斷,預設保留keep=first
第一個行值;透過keep
修改,值可為last
,保留最後一個,還可設定keep
為False
,一個也不保留。另也可指定列名去重,如傳入引數subset
=['列名1,列名2'],注意是以列表形式傳參;head()
傳入的引數代表獲取前幾行;describe()
掌握數值的分佈情況,如均值,最值,方差,分位數。column
和index
可設定列索引
和行索引
,以列表
形式傳參;set_index()
重新設定索引列,傳入要指名要用做行索引的名稱;reset_index(level = None,drop=False,inplace = False)
,level指定要將層次化索引的第幾級別轉化為columns
,第一個索引為0級,第二個為1級,預設全部轉化為columns。drop
是否將原索引刪掉,inplace
是否修改原資料表;該方法常用於資料分組和資料透視表中。rename()
重新命名索引,可重新設定columns
和index
,以字典
形式傳參,key
為原值,value
為替換後的值。
匯入CSV檔案
pandas匯入csv檔案用read_csv()方法;
import pandas as pd
csv_file1 = pd.read_csv('.\\data\\train-pivot.csv',index_col=0,header=0,nrows = 2) 複製程式碼
透過sep
設定分割符,encoding
指定編碼格式。匯入csv檔案要指定為gbk,不然會報錯,如果一個大檔案你只需看前面幾行,透過nrows
設定。
import pandas as pd
csv_file1 = pd.read_csv('data/train-pivot.csv',encoding='gbk',nrows=2)
print(csv_file1)複製程式碼
使用者ID 客戶分類 區域 是否省會 7月銷量 8月銷量
0 59224 A類 一線城市 是 6 20 0
1 55295 B類 三線城市 否 37 27 35複製程式碼
可以設定usercols
指定匯入的列。
使用者ID 區域
0 59224 一線城市
1 55295 三線城市
2 46035 二線城市
3 2459 一線城市
4 22179 三線城市複製程式碼
匯入sql
pandas中有read_sql()
方法:
import pandas as pd
import pymysql
# 建立連線
conn = pymysql.connect(host = 'localhost',user = 'python',
password = 'passwd',db = 'test',
charset = 'utf-8'
)
'''
user:使用者名稱
password:密碼
host:資料庫地址/本機用localhost
db:資料庫名
charset:編碼,一般為utf-8
'''
sql = "SELECT * FROM user" # 寫要執行的sql語句
pd.read_sql(sql,conn)複製程式碼