Python之如何使用pandas操作Excel表

这篇具有很好参考价值的文章主要介绍了Python之如何使用pandas操作Excel表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、前言

2、读取Excel

3、对Excel进行操作

3.1、获取行号、列名

 3.2、获取单元格的值,并循环输出

 3.3、对空值进行处理,替换

 3.4、增加一列,并对新增列的第一行进行赋值

3.5、将修改后数据保存到原文档

 3.6、关于循环取数

4、错误处理

5、全部代码


1、前言

网上也有很多关于如何使用pandas对Excel表格进行操作的文章,本文纯当记录

Excel原文件数据如下:

Python之如何使用pandas操作Excel表

2、读取Excel

对Excel操作分两步:

1、首先要导入pandas库

2、设置Excel文件路径

注意:

pandas.read_excel(file, sheet_name=0, keep_default_na=False)
1、file为要读取的Excel文件
2、sheet_name表示要读取的sheet名,0表示第一个sheet,1表示第2个sheet,依次类推;也可以直接写sheet的名称,如sheet_name='Sheet1'
3、当Excel中有空值时,直接读取会显示nan,read_excel方法中加上keep_default_na=False后,
空值nan会变成:'' 空字符串,后续可用if cell_data=='' 进行判断

代码如下:

import pandas

file = r'D:\student.xlsx'

class opexcel():
    def getdata(self, file):
        data = pandas.read_excel(file, sheet_name=0, keep_default_na=False)
        print(type(data)) # 输出数据类型(DataFrame)
        print(data)  # 输出数据

if __name__ == '__main__':
    opexcel().getdata(file)

打印结果如下:

Python之如何使用pandas操作Excel表

3、对Excel进行操作

3.1、获取行号、列名

        row_index = data.index.values  # 行号: 数组形式<class 'numpy.ndarray'> [0 1 2 3 4 5 6 7 8]
        print('行号是:%s' % row_index)
        row_num = len(data.index.values)  # 行数
        print('行数是:%s' % row_num)
        col_index = data.columns.values  # 列名: 数组形式<class 'numpy.ndarray'>['姓名' '性别' '年龄' '住址' '爱好']
        print('列名是:%s' % col_index)
        col_num = len(data.columns.values)  # 列数
        print('列数是:%s' % col_num)

打印结果:

Python之如何使用pandas操作Excel表

 3.2、获取单元格的值,并循环输出

        for i in range(row_num): # 循环行数
            for j in range(col_num): # 循环列数
                cell_data=data.iloc[i,j] # 获取单元格的值
                   print('第%s行,第%s列的数据是:%s ' %(i,i,cell_data))

打印结果如下:

Python之如何使用pandas操作Excel表

 3.3、对空值进行处理,替换

Excel文件中,某个单元格的值可能为空,直接读取会显示nan,且各个单元格的数据类型可能不一致,如date、str、int、float。这时如果直接读取,使用numpy.isnan()或者pandas.isnull()进行判断,都可能会报错,所以在开头读取Excel文件的方法pandas.read_excel(file, sheet_name=0, keep_default_na=False)中加上keep_default_na=False后,空值nan会变成:'' 空字符串。

现在我们想要将Excel中所有为空的单元格,替换为NULL字符串,操作如下

1、取出所有列名

2、循环列名,对空值替换(据实践,只有列名才有.replace()方法)

col_index = data.columns.values  # 列名
for col in col_index :
    data[col].replace('','NULL',inplace=True)
    # 第一个参数是替换前的值,即Excel表指定列的值,如有多个相同的值,后续都会被替换
      第二个参数是替换后的值,此处为字符串'NULL',也可填数字、或其他类型
      第三个参数,是否替换,True为替换
    print(data)
打印结果如下:

Python之如何使用pandas操作Excel表

如要将上方结果中【爱好】这一列的【无】,替换为羽毛球,操作如下:

data['爱好'].replace('无','羽毛球',inplace=True)

结果如下:

Python之如何使用pandas操作Excel表

 3.4、增加一列,并对新增列的第一行进行赋值

新增一列【成绩】,并赋值未None:

data['成绩']=None

打印结果如下:

Python之如何使用pandas操作Excel表

 修改增列的第一行的值为50:

data['成绩'][0]=50 

打印结果如下:

Python之如何使用pandas操作Excel表

 3.5、将修改后数据保存到原文档

注意:以上操作中将空值替换、新增列、修改单元格数据等编辑操作,只在控制台有效,实际文件的内容并不会被改变

file = r'D:\student.xlsx'

data.to_excel(file,sheet_name='Sheet1',index=False,header=True)

 # 用DataFrame的to_excel方法可将编辑后的数据进行保存(前面第一节已知data为DataFrame类型)

1、第一个参数file,表示数据将要保存到这个文件。可以是原文件(r'D:\student.xlsx'),如果写另外的文件(r'D:/test/newstudent.xlsx'),则数据将保存到另一个文件中,原文件数据不变

2、第二个参数sheet_name,表示将数据保存到文件的哪一个sheet工作表。如工作表不存在则会报错。

3、第三个参数index,表示工作表自带的序号。如果设置index=True,则保存后的数据将多出一列

4、第四个参数header,表示列名。设置header=True,保存后的数据将带上列名;设置header=False,保存后的数据将没有列名

注意:

读取文件的时候,sheet_name可以写成 sheet_name=0或 sheet_name='Sheet1'

data = pandas.read_excel(file, sheet_name=0,keep_default_na=False)

写入文件的时候,只能填写工作表的名称sheet_name='Sheet1'

保存后的数据如下:

Python之如何使用pandas操作Excel表

设置index=True,结果如下:

Python之如何使用pandas操作Excel表

 设置header=False,结果如下:

Python之如何使用pandas操作Excel表

 3.6、关于循环取数

col_index = data.columns.values  # 列名 ['姓名' '性别' '年龄' '住址' '爱好' '成绩']
数组,用in进行循环取值:for i in col_index:
col_num = len(data.columns.values)  # 列数 6
数值,用rang进行循环取数:for i in range(col_num :

3.7、字符串分割

url=data['URL'][0] # https://blog.csdn.net/m0_46400195/article/detailspy
print(url)
print(type(url))
str1=str(data['URL'][0]).split('/')
# 注意: 虽然显示URL为str类型,但是仍然要先将data['URL'][0]转为str,才能使用.split方法进行分割。str(data['URL'][0]).split('/'),也可以写成str(url).split('/')
print(str1) # 打印分割后的结果
newstr1=str1[0]+'//'+str1[2]+'/'+str1[3]+'/'+'druid' #根据分割后的信息进行拼接
newstr2 = str1[0] + '//' + str1[2] + '/' + str1[3]+'/' + 'druid/index.html'
print(newstr1) #打印拼接后的字符串
print(newstr2)
打印结果如下:

Python之如何使用pandas操作Excel表

4、错误处理

1、PermissionError: [Errno 13] Permission denied

这个错误出现可能是文件未关闭,关闭后再操作即可。还有可能是文件损坏了,打开文件,确认文件内容是否正常

2、……文章来源地址https://www.toymoban.com/news/detail-406331.html

5、全部代码

import pandas
import requests
from pandas import DataFrame
import xlwt
'''
1、当Excel中有空值时,直接读取会显示nan,read_excel方法中加上keep_default_na=False后,
空值nan会变成:‘’ 空字符串,后续可用if cell_data=='' 进行判断
2、col_index = data.columns.values  # 列名
   数组col_index:['序号' '是否导出' '所属单位'],用in进行循环取值:for i in col_index:
   row_num = len(data.index.values)  # 行数
   数值row_num:用rang进行循环取数:for i in range(row_num):
'''
file = r'D:\student.xlsx'


class opexcel():
    def getdata(self, file):
        data = pandas.read_excel(file, sheet_name=0,keep_default_na=False)
        # 当Excel中有空值时,直接读取会显示nan,read_excel方法中加上keep_default_na=False后,
        # 空值nan会变成:‘’ 空字符串,后续可用if cell_data=='' 进行判断
        # print(type(data))
        # print(data)  # 输出数据
        row_index = data.index.values  # 行号: 数组形式<class 'numpy.ndarray'> [0 1 2 3 4 5 6 7 8]
        print('行号是:%s' % row_index)
        row_num = len(data.index.values)  # 行数
        print('行数是:%s' % row_num)
        col_index = data.columns.values  # 列名: 数组形式<class 'numpy.ndarray'>['序号' '是否导出' '所属单位' '项目名称' '项目']
        print('列名是:%s' % col_index)
        col_num = len(data.columns.values)  # 列数
        print('列数是:%s' % col_num)
        # data['result']=None
        # data.to_excel(r'D:\userCase11.xls', sheet_name='Sheet1', index=False, header=True)
        # for i in range(row_num): # 循环行数
        #     for j in range(col_num): # 循环列数
        #         cell_data=data.iloc[i,j] # 获取单元格的值
        #         print('第%s行,第%s列的数据是:%s ' %(i,i,cell_data))
        #
        # for col in col_index :
        #     data[col].replace('','NULL',inplace=True)
        #     print(data)
        #
        # data['爱好'].replace('无','羽毛球',inplace=True)
        # print(data)
        # data['成绩']=None
        # print(data)
        # data['成绩'][0]=50
        # print(data)
        # data.to_excel(file,sheet_name='Sheet1',index=False,header=False)




if __name__ == '__main__':
    opexcel().getdata(file)

到了这里,关于Python之如何使用pandas操作Excel表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】使用pandas将数据写入excel文件中

    本文主要简单介绍一下使用python的pandas库来将数据写入到excel文件中。 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。在命令行输入pip install pandas进行安装即可,如果安装不成功,有安装Pycharm的小伙伴也可以进入python interpreter界面,搜索pand

    2024年02月15日
    浏览(38)
  • [数据分析实战]对比用Excel和Python用来做数据分析的优缺点,用Python的Pandas操作Excel数据表格原来如此简单?还不赶紧学起来?

    目录 首先,我先总结一下用Excel和Python用来做数据分析的优缺点 Excel做数据分析的优点: Excel做数据分析的缺点: Python做数据分析的优点: Python做数据分析的缺点: 1.展示本例子中使用的数据 2.开始动手 一、导入数据以及理解数据部分  1.1查看数据维度(行列) 2.2.查看数据格

    2024年02月04日
    浏览(27)
  • 【Python】进阶学习:pandas--read_excel()函数的基本使用

    【Python】进阶学习:pandas–read_excel()函数的基本使用 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、

    2024年03月09日
    浏览(35)
  • pandas操作excel

    目录 一:创建excel 二:修改excel 三:查找excel 四:删除数据 五:合并excel数据 一:创建excel import pandas as pd # 创建DataFrame对象 data = { \\\'Name\\\': [\\\'Alice\\\', \\\'Bob\\\', \\\'Charlie\\\'], \\\'Age\\\': [25, 30, 35], \\\'Salary\\\': [50000, 60000, 70000] } df = pd.DataFrame(data) # 创建ExcelWriter对象 writer = pd.ExcelWriter(\\\'output.xlsx\\\') # 将

    2024年01月21日
    浏览(27)
  • 如何使用xlwings库创建图表及设置坐标轴标题文本内容----关于Python里xlwings库对Excel表格的操作(三十二)

    这篇小笔记主要记录如何 【如何使用“Chart类”、“Api类\\\"和“Axes函数”设置坐标轴标题文本内容】 。 前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 (1)如何安装导入xlwings库; (2)如何在Wps下使用xlwings中

    2024年01月22日
    浏览(46)
  • python如何操作excel文件

    Python可以使用多种方式操作Excel文件,下面介绍几种常用的方法: 使用 openpyxl 库:openpyxl是一个用于读写Excel文件的Python库,它可以读取和写入.xlsx格式的文件。以下是读取Excel文件的示例代码: 使用 pandas 库:pandas库是一个数据分析库,也可以用来读取和写入Excel文件。以下

    2024年02月12日
    浏览(28)
  • python如何操作excel,在excel中读取和写入数据

    Excel 是 Microsoft 为使用 Windows 和 Apple Macintosh 操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使 Excel 成为最流行的个人计算机数据处理软件。在 1993 年,作为 Microsoft Office 的组件发布了5.0版之后, Excel 就开始成为

    2024年02月03日
    浏览(33)
  • 【学习】python之使用pandas提示TypeError: NDFrame.to_excel() got an unexpected keyword argument ‘encoding‘

    桨桨,终于有东西可以来记录解决的问题点啦~ 背景是在使用pandas一直无法转换成excel,排查了很久,终于在做了一个细微的调整实现成功了。 pandas 是基于NumPy 的一种工具。我的理解:这个包可以实现读取excel,写入excel的功能,分别是readexcel,toexcel。 运行报错提示 Traceback (m

    2024年04月08日
    浏览(77)
  • Pandas对Excel文件进行读取、增删、打开、保存等操作的代码实现

    Pandas 是一种基于 NumPy 的开源数据分析工具,用于处理和分析大量数据。Pandas 模块提供了一组高效的工具,可以轻松地读取、处理和分析各种类型的数据,包括 CSV、Excel、SQL 数据库、JSON 等格式的数据。 pd.read_csv() / pd.read_excel() / pd.read_sql() 等:读取不同格式的数据文件或 S

    2024年02月13日
    浏览(34)
  • Python 教学 | Pandas 数据合并(含目录文件合并案例)

    目录 Part  1前言 Part2  Pandas 数据合并函数 1  df.append() 实现数据追加 (1)向表中追加相同结构的表 (2)向表中追加不同结构的表 (3)向数据中添加一行 2  pd.concat() 实现数据连接 (1)多个相同结构数据纵向合并 (2)多个结构不同的数据纵向合并 (3)多个数据横向合并

    2024年01月17日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包