程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 讀寫 Excel 文件

編輯:Python

文章目錄

    • 01 Pandas 是什麼?
    • 02 安裝 Pandas
    • 03 將數據寫入 Excel 文件
    • 04 從 Excel 中讀取數據

在 Python 中,想去讀寫 Excel 文件的方式,有蠻多種方式的,比如說可以用 xlrd、openpyxl、pandas 等模塊都能去實現,只是說在不同的模塊上去讀寫稍有區別。

我自己喜歡使用 pandas,它足夠強大。

01 Pandas 是什麼?

Pandas 是一個開源的第三方 Python 庫,基於 Numpy 和 Matplotlib 上構建而來,業內數據分析主流方向【三件套】(NumPy、Matplotlib、Pandas)。Pandas 已經成為 Python 數據分析的必備高級工具,它作為強大、靈活、可以支持任何編程語言的數據分析工具,頗受大家的喜愛。

02 安裝 Pandas

第一種方式(推薦):

打開終端,輸入:pip install pandas命令即可安裝。

第二種方式:

找到 Pandas 的下載庫:https://www.lfd.uci.edu/~gohlke/pythonlibs/

然後下載自己想要的版本。

03 將數據寫入 Excel 文件

Excel 就是一個表格,它裡面有【行】和【列】,這是我們需要重點關注的兩個地方,不管是讀數據,還是寫數據,其實就是在操作行和列。

非常簡單的,咱們來實現一個簡單的【用戶表】,大致思路是這樣的:

  1. 先導入 pandas 庫
  2. 准備數據,並創建一個工作表
  3. 自定義索引(我故意加的)
  4. 將數據寫到 excel 表格中(此處會自動創建 excel 文件)

具體代碼如下:

# 第一步,導入 pandas 庫,取個別名
import pandas as pd
# 第二步,准備數據,並創建一個工作表
# DataFrame 數據幀,重點概念
# 它相當於我們【工作簿】中的一個【工作表】
df = pd.DataFrame({

'id':[1,2,3],
'name':['張三', '李四', '王五'],
'age':[22, 33, 44]
})
# 第三步,Pandas 會使用默認的索引
# 但咱還是自定義索引吧,要不導致生成的工作表也會存在它默認的索引,不太好
df = df.set_index('id')
print(df)
# 第四步,將數據寫入到 excel 文件中
df.to_excel('people.xlsx')
print('Done!')

04 從 Excel 中讀取數據

有個前提,你得先有一份 excel 文件,千萬不要太緊張給忘了。

就一個重點方法:read_excel()

你可以指定讀哪個文件?讀哪個工作表?從哪行開始讀?……

咱們,還是看代碼吧,非常簡單:

# 參數1:指定讀取 hello.xlsx 文件
# 參數2:header = 3 表示從第四行開始,因為索引是從 0 開始的
# 參數3:sheet_name 指定所要去讀取的工作表
user= pd.read_excel('user.xlsx', header=3, sheet_name='sheet1')
# 輸出列名
print(user.columns)
# 如果你的 Excel 中沒有開頭標題,可以用 header = None 來進行設置
user= pd.read_excel('user.xlsx', header=None)
user.columns = ['id', 'name', 'age']
print(user.columns)
# 通過 index_id 去指定 id 列作為索引
user = pd.read_excel('user.xlsx', index_col='id')
# head 默認指輸出前 5 行,此時就不會產生默認索引了
print(user.head())
# skiprows 開頭跳過幾行
# usecols 使用那些列中的數據
# dtype 設置某一列的類型
peoples = pd.read_excel('user.xlsx', skiprows = 3, usecols='E:H', dytpe={
'ID':str, 'gender':str, 'birthday':str})

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved