Windows下Python使用Pandas模組操作Excel檔案的教程

Windows下Python使用Pandas模組操作Excel檔案的教程
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

安裝Python環境
ANACONDA是一個Python的發行版本,包含了400多個Python最常用的庫,其中就包括了資料分析中需要經常使用到的Numpy和Pandas等。更重要的是,不論在哪個平臺上,都可以一鍵安裝,自動配置好環境,不需要使用者任何的額外操作,非常方便。因此,安裝Python環境就只需要到ANACONDA網站上下載安裝檔案,雙擊安裝即可。
ANACONDA官方下載地址:https://www.continuum.io/downloads
安裝完成之後,使用windows r鍵開啟Windows命令列,輸入ipython,然後回車:


Python 2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Jan 29 2016, 14:26:21) [MSC v.1500 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 4.0.3 -- An enhanced Interactive Python.
?     -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help   -> Python's own help system.
object?  -> Details about 'object', use 'object??' for extra details.

如上所示,如果成功進入了Python環境,則代表安裝成功。

使用pandas處理excel
在本文我以log.xls檔案為例,來說明如何使用pandas處理excel檔案。log.xls檔案的內容如下所示:

https://codertw.com/wp-content/uploads/2018/07/20180704223952-5b3d4cb833196.jpg (1440×759)

可以看到log.xls中包含了多個的表(sheet),每個表主要包括了member和activity兩個屬性,相同的member ID的資料相鄰的排列在一起,並且最後一行是前面所有的彙總。這裡,我們假設需要提取出每個member彙總的資訊,即提取每個member連續出現的最後一行的資料。如何實現呢?

這裡我們就來隆重介紹Pandas,,從https://pypi.python.org/pypi/pandas/0.16.2官方下載,cmd命令列進入下載解壓目錄,


python setup.py install 

安裝。

(PS:python的大資料模組pandas完全安裝完畢後還依賴於
• NumPy: 1.6.1 or higher
• python-dateutil 1.5
• pytz
這三個模組也許要安裝。
可選擇依賴有(可以根據需要安裝)
• SciPy: miscellaneous statistical functions
• PyTables: necessary for HDF5-based storage
• SQLAlchemy: for SQL database support. Version 0.8.1 or higher recommended.
• matplotlib: for plotting
• statsmodels
– Needed for parts of pandas.stats
• openpyxl, xlrd/xlwt
– openpyxl version 1.6.1 or higher, but lower than 2.0.0
– Needed for Excel I/O
• XlsxWriter
– Alternative Excel writer.
• boto: necessary for Amazon S3 access.

匯入pandas模組:


import pandas as pd

使用import讀入pandas模組,並且為了方便使用其縮寫pd指代。

讀入待處理的excel檔案:


df = pd.read_excel('log.xls')

通過使用read_excel函式讀入excel檔案,後面需要替換成excel檔案所在的路徑。讀入之後變為pandas的DataFrame物件。DataFrame是一個面向列(column-oriented)的二維表結構,且含有列表和行標,對excel檔案的操作就轉換為對DataFrame操作。另外,如果一個excel含有多個表,如果你只想讀入其中一個可以:


df = pd.read_excel('log.xls', sheetname=1)

增加了一個引數sheetname,表示的是第幾個表,從0開始計數。我上面設定的是1,也就是第二個表。

讀入之後,可以先檢視錶頭資訊和每一列的資料型別:


df.dtypes

輸出如下:


Member     object
Unnamed: 1  float64
Unnamed: 2  float64
Unnamed: 3  float64
Unnamed: 4  float64
Unnamed: 5  float64
家內外活動型別    object
Unnamed: 7   object
activity    object
dtype: object

提取每個member連續出現的最後一行資料:


new_df = df.drop_duplicates(subset='Member', keep='last')

以上語句的意思是根據Member欄位去除掉多餘的行,並且保留相同行的最後一行資料。這些就得到了每一個member最後一行的資料了,返回了經過篩選後的DataFrame。

接下來需要將處理後的結果,儲存為excel檔案:


out = pd.ExcelWriter('output.xls')
new_df.to_excel(out)
out.save()

output.xls是你要儲存的檔名,可以任取;然後將DataFrame的內容儲存到該檔案,最後儲存該檔案到系統的磁碟上。

接下來,你就可以在當前目錄看到一個新的檔案,可以直接使用excel開啟檢視。

Pandas還提供了很多的API,可以根據具體的任務,查詢API文件,找到合適的函式來完成任務。

附:一個完整的示例


#coding=utf-8
import pandas as pd
# 讀入excel檔案中的第2個表
df = pd.read_excel('log.xls', sheetname=1)
# 檢視錶的資料型別
print df.dtypes
# 檢視Member列的資料
print df['Member']
'''
# 新建一列,每一行的值是Member列和activity列相同行值的和
for i in df.index:
df['activity_2'][i] = df['Member'][i]   df['activity'][i]
'''
# 根據Member欄位去除掉多餘的行,並且保留相同行的最後一行資料
new_df = df.drop_duplicates(subset='Member', keep='last')
# 匯出結果
out = pd.ExcelWriter('output.xls')
new_df.to_excel(out)
out.save()

您可能感興趣的文章:

python3 pandas 讀取MySQL資料和插入的例項對Python 2.7 pandas 中的read_excel詳解Python 中pandas.read_excel詳細介紹用Python的pandas框架操作Excel檔案中的資料教程Python3讀取Excel資料存入MySQL的方法Python利用pandas計算多個CSV檔案資料值的例項python:pandas合併csv檔案的方法(圖書資料整合)Python使用pandas處理CSV檔案的例項講解python的pandas工具包,儲存.csv檔案時不要表頭的例項Python3使用pandas模組讀寫excel操作示例

相關文章

程式語言 最新文章