Pandas讀取並修改excel

2021-08-25 05:39:41 字數 3492 閱讀 3660

最近總是和excel打交道,由於資料量較大,人工來修改某些資料可能會有點浪費時間,這時候就使用到了python資料處理的神器—–pandas庫,話不多說,直接上pandas。

安裝完成後使用python自帶的包管理工具pip可以很快的安裝pandas。

pip install pandas
如果使用的是anaconda安裝的python,會自帶pandas。

首先可以先建立乙個excel檔案當作實驗資料,名稱為example.xlsx,內容如下:

name

agegender

john

30male

mary

22female

smith

32male

這裡是很簡單的幾行資料,我們來用pandas實際操作一下這個excel表。

# coding:utf-8

import pandas as pd

data = pd.read_excel('example.xlsx', sheet_name='sheet1')

print

data

結果如下:

這裡使用了read_excel()方法來讀取excel,來看乙個read_excel()這個方法的api,這裡只截選一部分經常使用的引數:

pd.read_excel(io, sheet_name=

0, header

=0, names=

none, index_col=

none, usecols=

none)

這裡主要引數為io,sheet_name,header,usecols和names

io:excel檔案,如果命名為中文,在python2.7中,需要使用decode()來解碼成unicode字串,例如: pd.read_excel('示例'.decode('utf-8))

sheet_name:返回指定的sheet,如果將sheet_name指定為none,則返回全表,如果需要返回多個表,可以將sheet_name指定為乙個列表,例如['sheet1', 'sheet2']

header:指定資料表的表頭,預設值為0,即將第一行作為表頭。

usecols:讀取指定的列,例如想要讀取第一列和第二列資料:

pd.read_excel("example.xlsx", sheet_name=none, usecols=[0, 1])

這裡先來乙個在機器學習中經常使用的:將所有gender為male的值改為0,female改為1。

# coding:utf-8

import pandas as pd

from pandas import dataframe

# 讀取檔案

data = pd.read_excel("example.xlsx", sheet_name="sheet1")

# 找到gender這一列,再在這一列中進行比較

data['gender'][data['gender'] == 'male'] = 0

data['gender'][data['gender'] == 'female'] = 1

print data

結果如下:

需要注意的是,這裡的data為excel資料的乙份拷貝,對data進行修改並不會直接影響到我們原來的excel,必須在修改後儲存才能夠修改excel。儲存的**如下:

dataframe(data).to_excel('example.xlsx', sheet_name='sheet1', index=false, header=true)

這時候我們再開啟example.xlsx檔案看看是否更改了:

如果我們想要新增加一列或者一行資料怎麼辦呢?這裡給出參考:

新增列資料:

data['列名稱'] = none
新增行資料,這裡行的num為excel中自動給行加的id數值

data.loc[行的num] = [值1, 值2, ...]
以上面的資料為例:

# coding:utf-8

import pandas as pd

from pandas import dataframe

data = pd.read_excel("example.xlsx", sheet_name='sheet1')

# 增加行資料,在第5行新增

data.loc[5] = ['james', 32, 'male']

# 增加列資料,給定預設值none

data['profession'] = none

# 儲存資料

dataframe(data).to_excel('example.xlsx', sheet_name='sheet1', index=false, header=true)

開啟excel看到的結果如下:

說完了增加一行或一列,那怎樣刪除一行或一列呢?

import pandas as pd

from pandas import dataframe

data = pd.read_excel("example.xlsx", sheet_name='sheet1')

# 刪除gender列,需要指定axis為1,當刪除行時,axis為0

data = data.drop('gender', axis=1)

# 刪除第3,4行,這裡下表以0開始,並且標題行不算在類

data = data.drop([2, 3], axis=0)

# 儲存

dataframe(data).to_excel('example.xlsx', sheet_name='sheet1', index=false, header=true)

這時候開啟excel可以看見gender列和除標題行的第3,4行被刪除了。

pandas除了上述的基本功能以外,還有其它更高階的操作,想要進一步學習的小夥伴們可以去pandas**進行學習。

讀取excel PySpark讀取Excel

日常工作中,客戶通過excel提供資料是一種很常見的方式,既然碰到了就得解決。我常用的辦法就是pandas讀取,並儲存為parquet,如果只讀取乙個sheet,import pandas as pddf pd.read excel excel1.xlsx df.to parquet excel e...

robotFramework 讀取Excel檔案

1 robotframework讀取excel檔案 第一步 先安裝excellibrary 可以直接通過命令安裝 pip install robotframework excellibrary 安裝完成後使用pip list命令檢視是否安裝成功 第二步 安裝完後將excellibrary匯入到rob...

Python使用Pandas讀寫EXCEL檔案教程

教程 開始之前,我們需要首先了解一下什麼是excel,這有助於理解之後教程中的內容。什麼是excel excel 的用途 當然,excel常常被用於辦公,製作各種各樣的報表。為什麼要選擇excel 雖然市面上有很多電子 工具可以選擇,但是excel以其豐富的功能被大家所接受,並且由於眾多企業使用者都...