pandas的外部數據導入與經常使用方法

外部數據導入

導入excel文件

pandas導入excel用read_excel()方法:python

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開始。mysql

excel_file1 = pd.read_excel('data/test.xlsx',sheet_name = 0)複製代碼

指定索引

列索引默認從0開始,經過index_col設置,header設置行索引。sql

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文件的行和列,以元祖形式返回;bash

  • info()獲取數據類型;測試

  • astype()  可轉換列裏面的數據類型,括號裏是要轉換的目標類型;如df[列2].astype('float64'); df['列'].dtype可查看列的類型編碼

  • isnull()判斷哪一個值是缺失值;spa

  • dropna()刪除有缺失值的行,返回刪除後的數據,傳入參數how=all,要全爲空值纔會刪除;excel

  • fillna()括號內可直接填入要要填充的值,也可指定列填充,以字典形式傳參;code

  • drop_duplicates()默認對全部重複值判斷,默認保留keep=first第一個行值;經過keep修改,值可爲last,保留最後一個,還可設置keepFalse,一個也不保留。另也可指定列名去重,如傳入參數subset=['列名1,列名2'],注意是以列表形式傳參;

  • head()傳入的參數表明獲取前幾行;

  • describe()掌握數值的分佈狀況,如均值,最值,方差,分位數。

  • columnindex可設置列索引行索引,以列表形式傳參;

  • set_index()從新設置索引列,傳入要指名要用作行索引的名稱;

  • reset_index(level = None,drop=False,inplace = False),level指定要將層次化索引的第幾級別轉化爲columns,第一個索引爲0級,第二個爲1級,默認所有轉化爲columns。drop是否將原索引刪掉,inplace是否修改原數據表;該方法經常使用於數據分組和數據透視表中。

  • rename()重命名索引,可從新設置columnsindex,以字典形式傳參,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)複製代碼

補充:數據導出

df.to_excel() 導出excel文件;

df.to_csv() 導出csv文件;

相關文章
相關標籤/搜索