Windows下Python使用Pandas模块操作Excel文件的教程
作者:wwt 发布时间:2021-01-05 23:07:40
安装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-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()
猜你喜欢
- 内容摘要:这篇文章的主旨是弄清楚如何根据实际需求实现一个联动菜单以及联动菜单的原理,实例是实现一个日期选择下拉菜单。首先来分析一下日期下拉菜
- 题目: 一个环形单链表,从头结点开始向后,指针每移动一个结点,就计数加1,当数到第m个节点时,就把该结点删除,然后继续从下一个节点开始从1计
- 相关概念并发:指一个时间段内,有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行。比如说在一秒内cpu切换了100个进程
- 可以在Mac OS X 10.2.x(“Jaguar”)和以上版本上Mac OS X使用二进制安装软件包的PKG格式代替二进制分发版来安装M
- 今天在网上找了一下Microsoft Enterprise Library 5.0 如何集成MySQL数据库, 结果只找到了entlib 4
- 一、安装软件包并创建项目$sudo pip install django$sudo python -c "import djang
- 由于微博的网页端有反爬虫,需要登录,所以我们换个思路,曲线救国。我们找到微博在浏览器上面用于手机端的调试的APL,如何找到呢?我这边直接附上
- 颜色目标检测就是根据物体的颜色快速进行目标定位。使用cv2.inRange函数设定合适的阈值,即可以选出合适的目标。建立项目colordet
- 最近接了个项目,其中有需求是要实现摇一摇红包功能,在网上搜了好久,都没有找到源码,没办法,只有自动写了,下面小编把我的劳动成果分享给大家供大
- 背景尽管到目前为止HTML4和XHTML1仍能够很好地满足我们的要求,但是它们仍然存在不足。为了满足用户丰富的基于Web应该程序的需要,达到
- 一、流程分析分析发现密码加密,且发送POST请求时header必须携带x-csrftoken,否则是报403。而x-csrftoken是在第
- easy_install 和 pip的介绍:easy_install和pip都是用来下载安装Python一个公共资源库PyPI 的相关资源包
- 学习目的: 掌握文本框的用法 初次接触try…catch…语法 今天内容很轻松,用一个例子,输入年月日,判断输入是否正确 图片如下: 用个
- -crop参数是从一个图片截取一个指定区域的子图片.格式如下:convert -crop widthxheight{+-
- 本文实例讲述了php+jQuery实现的 * 导航栏下拉菜单显示效果。分享给大家供大家参考,具体如下:首先看看效果图:1.数据配置文件 db.
- zhanglunray 问:我在mzzx_pic这个层设置了左边距,在ie里显示是正常的,但是在ff里显示时margin-left却没有起到
- asp之家注:在网页设计或编程中如何以最方便的方法来处理图片的宽高,以达到最佳的显示效果,这个问题相信很多网页制作人员都遇到过,最麻烦最费时
- 一个很普通的网页中显示LOGO图像,按照以往的页面制作经验,基本是在页面中插入图像即可(<img src="logo.gif
- 用javascript实现Base64编码—解决中文问题因javascript求出来的是Unicode要转换成Ansi后才能对它进行Base
- 前言:记一次golang使用json进行对象copy的内存溢出问题排查问题现象:新增的功能,灰度部署在k8s集群的服务,发现机器老是被打崩,