python pandas处理excel_快速全面使用Python处理Excel

本文详述如何使用Python的pandas、xlrd和xlwt库高效处理Excel文件,包括安装步骤、读写操作,适合数据处理初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

98ffc93db66e08270e7e811d7d21e91e.png点击上方“蓝字”关注我们吧! 8d99225cbcd5dd1c184f17d59fe4c356.png

文章小长,却很受用!这是小编的在这个公众号的第一篇推文,格外用心!安心听课!由于项目需要处理大量的数据,这些基础数据被存储在Excel表格中,团队运用了Python强大的数据处理能力进行了数据整理和数据清洗的工作。

全文共3376个字,预计阅读约15分钟!

a9112246bf9937b23f66afd6671732a4.png

怎么又是python!!!【好牛皮的样子】

目录

1、pandas、xlwt和xlrd库的安装

2、Python对Excel文件的读操作

3、Python对Excel文件的写操作

1、pandas、xlwt和xlrd库的安装

这里小编提供两种方法:

方法一:使用cmd命令行进行安装。按windows+R,弹出运行命令框,直接输入pip install pandas,点击确定,即进入安装界面,其他库也可按照此方式进行安装。

12c441d5e868d73a58d60f3b9723cce6.png

方法二:打开Pycharm(小编使用的是这一款IDE),依次点击File-Settings-Project-Project Interpreter-点击加号(下图),后边就是输入库名,安装就好了。

3627b4765162c5f4ac501a6e1a62db85.png

57ac9505325a6476c4b85075fafe52a2.gif

假装安好了

2、Python对Excel文件的读操作

这里同样也是介绍两种读操作方式,两种适用条件不同,可以自行甄选使用哦。

65263ee8f3de237c9e4f77425abe6bfb.gif

方法一:

使用pandas库进行读操作。

Pandas是python第三方库,提供高性能易用数据类型和分析工具。在使用时一般输入import pandas as pd(后边的as pd实际上就是给它起了个小名,方便调用)。其常与Numpy、Matplotlib结合使用,完成数据处理和数据可视化的一些工作。

d63884040cd8a6931bedfcfa8811cd9b.gif

上代码!!

先说一下用到的案例:

文件类型为xlsx类型,文件名称为file_test,文件内容如下图。

59a1630e5f4ac167091ef71d70a3fd01.png

# author:Zhenqian ZHANG# -*- coding: utf-8 -*-import pandas as pd  # 导入pandas库df = pd.read_excel(r"C:\Users\Phil\Desktop\test_file.xlsx", encoding='gbk')# 读取文件:pd.read_excel("file path",encoding=)默认encoding是UTF-8,但是据说gbk对中文会好点# 先介绍些必备知识(只是部分知识,比如数据拼接、数据清理在本文并未介绍)#1.查看数据print(df.shape[0])  # 返回行数,返回15print(df.shape[1])  # 返回列数,返回3print(df.head())  # 返回前几行,默认为5print(df.tail(4))  # 返回后几行,默认为5print(df.describe())  # 返回数据列的一些数据特征值,比如最大值、最小值、平均数等等print(df.info())  # 返回数据集的基本信息print(df.columns)  # 返回列名print(df.dtypes)  # 返回数据类型print(df.mean())  # 返回平均值#2.数据选取std_name = df["姓名"]  # 新建std_name列表,并将文件中的“姓名”这一列存储进去std_name2 = df.姓名  # 和 上一行一样的效果,只不过是不同的方式scores = df["成绩"]  # 新建scores列表,并将文件中的“成绩”这一列存储进去print(df[["序号","成绩"]])  # 查看多行多列print(df.iloc[0])  # 按索引查看某行,第一行:print(df.iloc[1,1])  # 输出李四,因为行列都是从0开始索引的for i in std_name2:    print(i)  # 将依次输出姓名# 接下来我们可以做一些简单的统计#1.我们统计下成绩大于90的人数num = 0for j in scores:    if j >= 90:        num += 1  # 每找到一个就自加1print(num)#2.将成绩大于等于90的学生姓名和成绩打印出来for id,sc in enumerate(scores):  # enumerate()返回列表的检索号(存储在了id变量中)和值(存储在了sc变量中)    if sc >= 90:        print(std_name[id], "\t" , sc)    else:        continue

b9d379b124d1abb6aef0c238d7b0c097.gif

方法二:

使用xlrd库进行读操作。不啰嗦,直接上代码!!!【就是这么粗暴,你打我啊】

# author:Zhenqian ZHANG# -*- coding: utf-8 -*-import xlrd  # 导入库file_path = r"C:\Users\Phil\Desktop\test_file.xlsx"  # 这里我有添加了一个数据表sheet2book = xlrd.open_workbook(file_path)  # 注意这里是数据簿,对比一下前文的pandas是打开的数据表sheet0 = book.sheet_by_index(0)  # 按照索引号得到表单sheet1 = book.sheet_by_name("sheet1")  # 按照表单名得到表单sheet_name = book.sheet_names()[0]  # 得到检索号为0的表单的表名print(sheet_name)# 获得行数和列数Nn_rows = sheet0.nrows    # 行总数Nb_cols = sheet0.ncols    # 列总数# 获得指定行、列的值,返回对象为一个值列表row_data = sheet0.row_values(0)  # 获得第1行的数据列表print(row_data)col_data = sheet0.col_values(0)  # 获得第1列的数据列表print(col_data)# 通过单元格坐标读取单元格中的数据cellValue1 = sheet0.cell_value(0, 0)cellValue2 = sheet0.cell_value(0, 1)print(cellValue1)print(cellValue2)

3、文件的写操作

1812c8d3638400c2b10c0debfe8bba89.png

最后一个啦。。。

对Excel文件进行写操作主要是用到xlwt库。所谓写操作就是把你代码中想保存的数据写入Excel文件中,然后保存下来。无非就是一些建表、写入、保存的操作。加把劲!!!

c362b8c44dd4f5929bc232f7c4d30f98.gif

# author:Zhenqian ZHANG# -*- coding: utf-8 -*-import xlwt  # 导入库# 创建一个数据簿,相关参数可自行查阅,主要的就是这两个book = xlwt.Workbook(encoding='utf-8', style_compression=0)#创建一个表单,表单名为test,第二个参数表示设置为可编辑模式sheet = book.add_sheet("test", cell_overwrite_ok=True)# 向表中添加数据sheet.write(0,0,"ID")  # 表示在第一行第一列写入IDsheet.write(0,1,"姓名")  # 表示在第一行第二列写入姓名for i in range(1,4):    sheet.write(i,0,i)  #这里表示在表单的第一列写入3个序号names = ["张三","李四","王五"]  # 建一个名字列表for j in range(len(names)):  #这里len()函数可以返回列表的长度    sheet.write(j+1,1,names[j])  # 这里表示在第二列依次写入三个名字book.save(r"C:\Users\Phil\Desktop\test.xls")  # 这里加r表示转义,也可以直接使用"C://Users//Phil//Desktop//test.xls"# 注意这里的文件格式是xls的

输出的文件为:

29fafafc48ead2448dd84c34934f5bd6.png

af8789d33956916044792947bcf7b27b.png

终于结束了,其实这三个库还有很多其他知识,自己要多查阅资料、多敲代码。小编也和你一样在慢慢成长哦。

温馨提示

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我们。

85604b5b31c9105e17397932ab695130.png 2f7cdc40ea127315a7d7169fe8f6cfa0.png微信号:运筹帷幄Q新浪微博:@我家公子Q-扫码关注我们-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值