外部數據導入
導入excel文件
pandas導入excel用read_excel()方法:
1
2
3
4
|
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開始。
1
|
excel_file1 = pd.read_excel( 'data/test.xlsx' ,sheet_name = 0 ) |
指定索引
列索引默認從0開始,通過index_col設置,header設置行索引。
1
|
excel_file1 = pd.read_excel( 'data/測試.xlsx' ,encoding = 'utf-8' ,index_col = 0 ) |
年齡 工作 年資
姓名
張三 25 學生 200
李四 24 工人 3000
王偉 28 nan 5000
王二毛 22 自由職業 6000
1
|
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指定導入的列,也可以列表形式傳入多個值,表示傳入哪些列。
1
|
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()方法;
1
2
|
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 設置。
1
2
3
|
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() 方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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) |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://juejin.im/post/5cc81ad65188252dc92b5cc3