讀與寫
pandas是基於NumPy的一種數據分析工具,在數據分析的任務中,我們首先需要對數據進行清洗和編輯等工作,pandas庫大大簡化了我們的工作量。
•pandas進行數據讀取
1 #絕對路徑查詢 2 import os
1 print(os.path.abspath("."))
/Users/yaozhilin
1 #導入pandas和numpy庫 2 import pandas as pd 3 import numpy as np
1 from pandas import Series,DataFrame
讀取常用的數據方法
~pd.read_csv 讀取csv文件
~pd.read_table 讀取txt文件
~pd.read_excel 讀取xls文件
其實這三種讀取方式都一致,我們以pd.read_excel為例
pd.read_excel(filepath,encoding,sep,header,names,usecols,index_col,skiprows,nrows……)
filepath:文件存儲路徑,可以用r""進行非轉義限定,路徑最好是純英文(文件名也是),不然會經常碰到編碼不對的問題,最方便是直接將文件存儲在pandas默認的路徑下,則直接輸入文件名即可
encoding:pandas默認編碼是utf-8,如果同樣讀取默認uft-8的txt或者json格式,則可以忽略這個參數,如果是csv,且數據中有中文時,則要指定encoding=‘gbk’
sep:指定分割符形式,CSV默認逗號分割,可以忽略這個參數,如果是其它分割方式,則要填寫
header: 指定第一行是否是列名,通常有三種用法,忽略或header=0(表示數據第一行為列名),header=None(表明數據沒有列名),常與names搭配使用
names: 指定列名,通常用一個字符串列表表示,當header=0時,用names可以替換掉第數據中的第一行作為列名,如果header=None,用names可以增加一行作為列名,如果沒有header參數時,用names會增加一行作為列名,原數據的第一行仍然保留
usecols:一個字符串列表,可以指定讀取的列名
index_col: 一個字符串列表,指定哪幾列作為索引
skiprows: 跳過多少行再讀取數據,通常是數據不太干凈,需要去除掉表頭才會用到
nrows: 僅讀取多少行,后面的處理也都僅限於讀取的這些行
以上參數並不都會用到,僅供參考,下面我們簡單的讀取一個文件:
1 test=pd.read_excel("/Users/yaozhilin/Downloads/數據.xls",sep="t") 2 test.head(5)#顯示前五行

columns重命名rename
1 test.rename(columns={"聯系人姓名":"姓名","聯系人頭銜":"職位"},inplace=True) 2 test.head(5)

•pandas進行數據寫出
寫入常用的數據方法
~data.to_csv 寫出csv文件
~data.to_table 寫出txt文件
~data.to_excel 寫出xls文件
data.to_excel (path_or_buf=None, sep=’, ’, columns=None, header=True, index=True, mode=‘w’, encoding=None)
path_or_buf :文件路徑
sep :分隔符,默認用","隔開
columns :選擇需要的列索引
header :boolean or list of string, default True,是否寫進列索引值
index:是否寫進行索引
mode:‘w’:重寫, ‘a’ 追加
寫出一個文件
1 test.to_excel("/Users/yaozhilin/Downloads/數據寫出.xls", encoding='gbk')
我們嘗試的讀取一下,看看是否寫出成功。
1 pd.read_excel("/Users/yaozhilin/Downloads/數據寫出.xls", encoding='gbk',nrows=5)#只讀5行

我們在讀寫文件時常常需要注意encoding="gbk"(中文防止亂碼)和分隔符sep=" "。
附:常用的讀寫參考表

