您的位置:首页 > 编程语言 > Python开发

Windows下Python使用Pandas模块操作Excel文件的教程

2016-05-31 00:00 1556 查看
安装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文件的内容如下所示:



可以看到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-8import 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()


您可能感兴趣的文章:

Python读写Excel文件的实例
python中使用xlrd、xlwt操作excel表格详解
用python读写excel的方法
用Python的pandas框架操作Excel文件中的数据教程
python抓取某汽车网数据解析html存入excel示例
用python + openpyxl处理excel2007文档思路以及心得
python使用xlrd模块读写Excel文件的方法
Python GAE、Django导出Excel的方法
Python修改Excel数据的实例代码
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
python高手之路python处理excel文件(方法汇总)
Python中使用第三方库xlrd来写入Excel文件示例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python Pandas Excel