詳解pandas的外部數(shù)據(jù)導(dǎo)入與常用方法
外部數(shù)據(jù)導(dǎo)入
導(dǎo)入excel文件
pandas導(dǎo)入excel用read_excel()方法:
import pandas as pd excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8')
姓名 年齡 工作 工資
0 張三 25 學(xué)生 200
1 李四 24 工人 3000
2 王偉 28 NaN 5000
3 王二毛 22 自由職業(yè) 6000
第一個參數(shù)是路徑,既可以使用絕對路徑又可以使用相對路徑,如果文件名含有漢字,注意指定設(shè)置一下屬性encoding = 'utf-8',另設(shè)置sheet_name指定具體的Sheet名字,也可傳入sheet的順序,從0開始。
excel_file1 = pd.read_excel('data/test.xlsx',sheet_name = 0)
指定索引
列索引默認(rèn)從0開始,通過index_col設(shè)置,header設(shè)置行索引。
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8',index_col=0)
年齡 工作 年資
姓名
張三 25 學(xué)生 200
李四 24 工人 3000
王偉 28 NaN 5000
王二毛 22 自由職業(yè) 6000
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8',header=1)
張三 25 學(xué)生 200
0 李四 24 工人 3000
1 王偉 28 NaN 5000
2 王二毛 22 自由職業(yè) 6000
指定索引列
有時本地文件列數(shù)太多,可以設(shè)置usercols指定導(dǎo)入的列,也可以列表形式傳入多個值,表示傳入哪些列。
excel_file1 = pd.read_excel('data/測試.xlsx',encoding='utf-8',usecols=[0,2])
姓名 工作
0 張三 學(xué)生
1 李四 工人
2 王偉 NaN
3 王二毛 自由職業(yè)
常用方法
- shape() 可以獲取excel文件的行和列,以元祖形式返回;
- info() 獲取數(shù)據(jù)類型;
- astype() 可轉(zhuǎn)換列里面的數(shù)據(jù)類型,括號里是要轉(zhuǎn)換的目標(biāo)類型;如 df[列2].astype('float64') ; df['列'].dtype 可查看列的類型
- isnull() 判斷哪個值是缺失值;
- dropna() 刪除有缺失值的行,返回刪除后的數(shù)據(jù),傳入?yún)?shù)how=all,要全為空值才會刪除;
- fillna() 括號內(nèi)可直接填入要要填充的值,也可指定列填充,以 字典 形式傳參;
- drop_duplicates() 默認(rèn)對所有重復(fù)值判斷,默認(rèn)保留 keep=first 第一個行值;通過 keep 修改,值可為 last ,保留最后一個,還可設(shè)置 keep 為 False ,一個也不保留。另也可指定列名去重,如傳入?yún)?shù) subset =['列名1,列名2'],注意是以列表形式傳參;
- head() 傳入的參數(shù)代表獲取前幾行;
- describe() 掌握數(shù)值的分布情況,如均值,最值,方差,分位數(shù)。
- column 和 index 可設(shè)置 列索引 和 行索引 ,以 列表 形式傳參;
- set_index() 重新設(shè)置索引列,傳入要指名要用做行索引的名稱;
- reset_index(level = None,drop=False,inplace = False) ,level指定要將層次化索引的第幾級別轉(zhuǎn)化為 columns ,第一個索引為0級,第二個為1級,默認(rèn)全部轉(zhuǎn)化為columns。 drop 是否將原索引刪掉, inplace 是否修改原數(shù)據(jù)表;該方法常用于數(shù)據(jù)分組和數(shù)據(jù)透視表中。
- rename() 重命名索引,可重新設(shè)置 columns 和 index ,以 字典 形式傳參, key 為原值, value 為替換后的值。
導(dǎo)入CSV文件
pandas導(dǎo)入csv文件用read_csv()方法;
import pandas as pd csv_file1 = pd.read_csv('.\\data\\train-pivot.csv',index_col=0,header=0,nrows = 2)
通過 sep 設(shè)置分割符, encoding 指定編碼格式。導(dǎo)入csv文件要指定為gbk,不然會報錯,如果一個大文件你只需看前面幾行,通過 nrows 設(shè)置。
import pandas as pd csv_file1 = pd.read_csv('data/train-pivot.csv',encoding='gbk',nrows=2) print(csv_file1)
用戶ID 客戶分類 區(qū)域 是否省會 7月銷量 8月銷量
0 59224 A類 一線城市 是 6 20 0
1 55295 B類 三線城市 否 37 27 35
可以設(shè)置 usercols 指定導(dǎo)入的列。
用戶ID 區(qū)域
0 59224 一線城市
1 55295 三線城市
2 46035 二線城市
3 2459 一線城市
4 22179 三線城市
導(dǎo)入sql
pandas中有 read_sql() 方法:
import pandas as pd import pymysql # 創(chuàng)建連接 conn = pymysql.connect(host = 'localhost',user = 'python', password = 'passwd',db = 'test', charset = 'utf-8' ) ''' user:用戶名 password:密碼 host:數(shù)據(jù)庫地址/本機(jī)用localhost db:數(shù)據(jù)庫名 charset:編碼,一般為utf-8 ''' sql = "SELECT * FROM user" # 寫要執(zhí)行的sql語句 pd.read_sql(sql,conn)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python Flask利用SocketIO庫實現(xiàn)圖表的繪制
這篇文章主要為大家詳細(xì)介紹了Python Flask框架如何利用SocketIO庫實現(xiàn)圖表的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12基于python的圖片修復(fù)程序(實現(xiàn)水印去除)
這篇文章主要給大家介紹了關(guān)于python圖片修復(fù)程序的相關(guān)資料,可以用于實現(xiàn)圖片中水印去除,主要利用的是OpenCV這個框架實現(xiàn)的,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-06-06django與vue的完美結(jié)合_實現(xiàn)前后端的分離開發(fā)之后在整合的方法
今天小編就為大家分享一篇django與vue的完美結(jié)合_實現(xiàn)前后端的分離開發(fā)之后在整合的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08django框架創(chuàng)建應(yīng)用操作示例
這篇文章主要介紹了django框架創(chuàng)建應(yīng)用操作,結(jié)合實例形式分析了Django框架的安裝、創(chuàng)建項目、創(chuàng)建數(shù)據(jù)庫及創(chuàng)建應(yīng)用相關(guān)操作技巧,需要的朋友可以參考下2019-09-09Python實現(xiàn)學(xué)校管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)學(xué)校管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Python時間戳與日期格式之間相互轉(zhuǎn)化的詳細(xì)教程
java默認(rèn)精度是毫秒級別的,生成的時間戳是13位,而python默認(rèn)是10位的,精度是秒,下面這篇文章主要給大家介紹了關(guān)于Python時間戳與日期格式之間相互轉(zhuǎn)化的相關(guān)資料,需要的朋友可以參考下2022-08-08