天天看點

pandas讀取外部資料---(3)使用Pandas讀寫操作excel

目錄

1、準備工作

2、準備好excel資料表格

3、使用Pandas讀取excel資料

4、Pandas讀取指定(限定)行的excel資料

5、Pandas讀取指定(限定)列的excel資料

6、Pandas讀取同時指定行和列的excel資料

7、pandas處理Excel資料成為字典

8、pandas資料寫入Excel檔案

1、準備工作

(1):準備好Python或者Anaconda的pandas庫,安裝:pip install pandas

(2):pandas依賴處理Excel的xlrd子產品,安裝指令:pip install xlrd

(3):打開代碼編輯器jupyter、ipython、pycharm,根據自己習慣和需求選用。

2、準備好excel資料表格

pandas讀取外部資料---(3)使用Pandas讀寫操作excel

3、使用Pandas讀取excel資料

df = pd.read_excel('路徑',sheet_name='excel中的哪個表,表名/位置')

如果不使用sheet_name='***',預設讀取第一張表

import pandas as pd
import xlrd

#讀取sheet_name='table1'的資料
df=pd.read_excel('e:\pandas_excel.xlsx',sheet_name='table1') #根據表的名稱
#df = pd.read_excel("e:\pandas_excel.xlsx",sheet_name=0)  #根據表的位置
print(df.head())#預設讀取前5行的資料
print(df)#輸出全部資料

>>結果
   name_id    name address
0     1001   jalen      廣州
1     1002    lili      杭州
2     1003    nini      深圳
3     1004      xr      貴陽
4     1005  weiwei      武漢
   name_id        name address
0     1001       jalen      廣州
1     1002        lili      杭州
2     1003        nini      深圳
3     1004          xr      貴陽
4     1005      weiwei      武漢
5     1006  liangliang      廣州
6     1007    pengpeng      杭州


#讀取sheet_name='table2'的資料
df1 = pd.read_excel('e:\pandas_excel.xlsx',sheet_name='table2')#根據表的名稱
#df1 = pd.read_excel("e:\pandas_excel.xlsx",sheet_name=1)  #根據表的位置
print(df1.head(2))#讀取前2行的資料
print(df1)#輸出全部資料

>>結果
   address_id address
0          10      廣州
1          12      杭州
   address_id address
0          10      廣州
1          12      杭州
2          11      深圳
3          14      貴陽
4          13      武漢
           

4、Pandas讀取指定(限定)行的excel資料

import pandas as pd
import xlrd
df = pd.read_excel('e:\pandas_excel.xlsx',sheet_name='table1')#根據表的名稱
print(df.head(10))#隻能限定行方向的高度,取前10行
print(df.ix[[0,2,3]].values)  #傳回指定的行的ndarray結果
print(df.ix[[0,2,3]])   #傳回指定的行的DataFrame結果
print(df.index[0:5:2]) #傳回指定的index結果
print(df.ix[df.index[0:5:2]].values) #根據index傳回指定的行的ndarray結果
print(df.ix[df.index[0:5:2]]) #根據index傳回指定的行的DataFrame結果
           

5、Pandas讀取指定(限定)列的excel資料

df = pd.read_excel('e:\pandas_excel.xlsx',sheet_name='table1')#根據表的名稱
print(df['name'].values) #隻能擷取單列值
print(df.ix[:,["name","address"]]) #傳回指定的列的DataFrame結果
print(list(df.columns[0:3:1]))  #傳回columns結果
print(df.ix[:,list(df.columns[1:3:1])].values) #根據index傳回指定的列的ndarray結果
print(df.ix[:,list(df.columns[1:3:1])]) #根據index傳回指定的列的DataFrame結果
           

6、Pandas讀取同時指定行和列的excel資料

df = pd.read_excel('e:\pandas_excel.xlsx',sheet_name='table1')#根據表的名稱
d = df.ix[list(df.index[3:5:1]),list(df.columns[1:3:1])] #3,4行,1,2列,起始行列都為0
print(d)
           

7、pandas處理Excel資料成為字典

df = pd.read_excel('e:\pandas_excel.xlsx',sheet_name='table1')#根據表的名稱
d = []
for i in df.index[::]:
    d_row = df.ix[i,list(df.columns[0:3:1])].to_dict()
    d.append(d_row)
print(d)
           

8、pandas資料寫入Excel檔案

當需要寫入多個Sheet時,則需要在寫入前建立好一個Excel檔案,否則可以直接寫入。

文法:

df.to_excel(excel_writer, sheet_name=’Sheet1’, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep=’inf’, verbose=True, freeze_panes=None)

部分參數解釋:

excel_writer:檔案名、檔案具體、相對路徑、檔案對象等
sheet_name:寫入時設定Sheetname,預設為’Sheet1’
sep:檔案分割符号
na_rep:将NaN轉換為特定值
columns:選擇部分列寫入
header:忽略列名
index:False則選擇不寫入索引
           

寫入單個Sheet表格

隻能寫入一個Sheet表格,多次寫入則會清除excel檔案中的内容

df.to_excel('e:\df.xlsx')

自定義Sheetname

df.to_excel('e:\df.xlsx',sheet_name='table1')

同一個Excel檔案寫入多個Sheet表格

寫入多個Sheet時,則需要在寫入前建立好一個Excel檔案

寫入多個表時,需要用到pd.ExcelWriter()打開一個Excel檔案

work=pd.ExcelWriter(''e:\df.xlsx'')

df.to_excel(work,sheet_name='table1')

df1.to_excel(work,sheet_name='table2')

繼續閱讀