• Python 读写 Excel 文件



    在 Python 中,想去读写 Excel 文件的方式,有蛮多种方式的,比如说可以用 xlrd、openpyxl、pandas 等模块都能去实现,只是说在不同的模块上去读写稍有区别。

    我自己喜欢使用 pandas,它足够强大。

    01 Pandas 是什么?

    Pandas 是一个开源的第三方 Python 库,基于 Numpy 和 Matplotlib 上构建而来,业内数据分析主流方向【三件套】(NumPy、Matplotlib、Pandas)。Pandas 已经成为 Python 数据分析的必备高级工具,它作为强大、灵活、可以支持任何编程语言的数据分析工具,颇受大家的喜爱。

    02 安装 Pandas

    第一种方式(推荐):

    打开终端,输入:pip install pandas命令即可安装。

    第二种方式:

    找到 Pandas 的下载库:https://www.lfd.uci.edu/~gohlke/pythonlibs/

    然后下载自己想要的版本。

    03 将数据写入 Excel 文件

    Excel 就是一个表格,它里面有【行】和【列】,这是我们需要重点关注的两个地方,不管是读数据,还是写数据,其实就是在操作行和列。

    非常简单的,咱们来实现一个简单的【用户表】,大致思路是这样的:

    1. 先导入 pandas 库
    2. 准备数据,并创建一个工作表
    3. 自定义索引(我故意加的)
    4. 将数据写到 excel 表格中(此处会自动创建 excel 文件)

    具体代码如下:

    # 第一步,导入 pandas 库,取个别名
    import pandas as pd
    
    # 第二步,准备数据,并创建一个工作表
    # DataFrame 数据帧,重点概念
    # 它相当于我们【工作簿】中的一个【工作表】
    df = pd.DataFrame({
        'id':[1,2,3], 
        'name':['张三', '李四', '王五'],
        'age':[22, 33, 44]
    })
    
    # 第三步,Pandas 会使用默认的索引
    # 但咱还是自定义索引吧,要不导致生成的工作表也会存在它默认的索引,不太好
    df = df.set_index('id')
    print(df)
    
    # 第四步,将数据写入到 excel 文件中
    df.to_excel('people.xlsx')
    print('Done!')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    04 从 Excel 中读取数据

    有个前提,你得先有一份 excel 文件,千万不要太紧张给忘了。

    就一个重点方法:read_excel()

    你可以指定读哪个文件?读哪个工作表?从哪行开始读?……

    咱们,还是看代码吧,非常简单:

    # 参数1:指定读取 hello.xlsx 文件
    # 参数2:header = 3 表示从第四行开始,因为索引是从 0 开始的
    # 参数3:sheet_name 指定所要去读取的工作表
    user= pd.read_excel('user.xlsx', header=3, sheet_name='sheet1')
    # 输出列名
    print(user.columns)
    
    # 如果你的 Excel 中没有开头标题,可以用 header = None 来进行设置
    user= pd.read_excel('user.xlsx', header=None)
    user.columns = ['id', 'name', 'age']
    print(user.columns)
    
    # 通过 index_id 去指定 id 列作为索引
    user = pd.read_excel('user.xlsx', index_col='id')
    # head 默认指输出前 5 行,此时就不会产生默认索引了
    print(user.head())
    
    # skiprows 开头跳过几行
    # usecols 使用那些列中的数据
    # dtype 设置某一列的类型
    peoples = pd.read_excel('user.xlsx', skiprows = 3, usecols='E:H', dytpe={'ID':str, 'gender':str, 'birthday':str})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    携程apollo linux服务器安装部署及问题记录
    线程基础知识
    太厉害了,阿里内网最新发布的【MySQL面试小册】把MySQL架构+索引原理+性能优化都讲清楚了
    七大常见基于比较的排序算法
    Unity的unity_ObjectToWorld里的每一列分别代表什么意思?换个方向反向理解-更简单
    百度、四维图新、高德争“鲜”恐后
    基于QTGUI的坦克大战游戏设计
    马赫数相关函数
    JS中BOM编程:设置浏览器地址栏地址
    Linux:多线程中的互斥与同步
  • 原文地址:https://blog.csdn.net/qq_41340258/article/details/125522170