在Python中处理表格数据,有几个非常流行且功能强大的库。以下是一些最常用的库及其示例代码:

1. Pandas

Pandas是一个开放源代码的、BSD许可的库,为Python编程语言提供高性能、易于使用的数据结构和数据分析工具。

安装Pandas

pip install pandas

示例代码:读取CSV文件

import pandas as pd

# 读取CSV文件
df = pd.read_csv('pokemon.csv') # 显示前五行数据
print(df.head()) # 计算某列的平均值
print("Average of column:", df['Speed'].mean()) # 数据筛选
filtered_df = df[df['Speed'] > 10] # 将更改后的DataFrame保存到新的CSV文件
filtered_df.to_csv('filtered_example.csv', index=False)

2. OpenPyXL

OpenPyXL是一个库,用于读取和写入Excel 2010 xlsx/xlsm/xltx/xltm文件。

安装OpenPyXL

pip install openpyxl

示例代码:读取Excel文件

from openpyxl import load_workbook

# 加载一个现有的工作簿
wb = load_workbook('example.xlsx') # 获取活动的工作表
sheet = wb.active # 读取A1单元格的值
print(sheet['A1'].value) # 修改B2单元格的值
sheet['B2'] = 42 # 保存工作簿
wb.save('modified_example.xlsx')

3. CSV

Python标准库中的CSV模块提供了读写CSV文件的功能。

示例代码:读取CSV文件

import csv

# 打开CSV文件
with open('example.csv', mode='r', encoding='utf-8') as file:
reader = csv.reader(file) # 遍历每一行
for row in reader:
print(row) # 写入CSV文件
with open('output.csv', mode='w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'City'])
writer.writerow(['Alice', '24', 'New York'])

4. xlrd/xlwt

这两个库通常一起使用,xlrd用于读取老版本的Excel文件(xls),而xlwt用于写入。

安装xlrd和xlwt

pip install xlrd xlwt

示例代码:读取xls文件

import xlrd

# 打开工作簿
wb = xlrd.open_workbook('catering_sale.xls') # 通过索引获取工作表
sheet = wb.sheet_by_index(0) # 读取A1单元格的值
print(sheet.cell_value(0, 0)) # 获取行数和列数
print(sheet.nrows, sheet.ncols)

当选择库的时候,最好考虑你的具体需求,例如文件格式(CSV、Excel等)、数据大小、性能需求以及是否需要进行复杂的数据分析和操作。Pandas在数据分析方面提供了广泛的功能,而OpenPyXL、xlrd和xlwt则在处理Excel文件方面各有所长。标准库中的CSV模块足够处理基本的CSV文件操作。

玩转Python:在Python中处理表格数据,几个非常流行且功能强大的库的更多相关文章

  1. Python使用Tabula提取PDF表格数据

    今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...

  2. Delphi读取不Word中不规则表格数据并转换成标准表格

    程序需要,需要将word中不规则的表格数据转换为标准的表格,即合并的单元格按正常格式解析,word中的表格格式如下: 解析后数据如下: 借鉴了网上代码,如下处理: procedure TfrmMain ...

  3. python读取es中的所有数据并计算md5然后进行持久化

    #!/usr/bin/python import threading import json import time from elasticsearch import Elasticsearch f ...

  4. Python利用xlutils统计excel表格数据

    假设有像上这样一个表格,里面装满了各式各样的数据,现在要利用模板对它进行统计每个销售商的一些数据的总和.模板如下: 代码开始: 1 #!usr/bin/python3 2 # -*-coding=ut ...

  5. python 实现元组中的的数据按照list排序, python查询mysql得到的数据是元组格式,按照list格式对他们排序

    需求: 需要用echart实现软件模块的统计分析,首先是对数据库的数据查询出来,然后给数据封装成列表(list)格式,数据传到前台,在echart实现绑定数据. 因为数据已经按照从大到小的顺序显示出来 ...

  6. Python 删除列表中的重复数据

    list0=['b','c', 'd','b','c','a','a'] 方法1:使用set() list1=sorted(set(list0),key=list0.index) # sorted o ...

  7. 使用python读取文本中结构化数据

    需求 read some .txt file in dir and find min and max num in file. solution: echo *.txt > file.name ...

  8. WPF下的Richtextbox中实现表格合并,添加删除行列等功能

    .Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...

  9. 使用phpword获取doc中的表格数据

    1. 首先确定使用phpword是可以读取word文档中表格里面的数据, 使用的phpword版本0.17.0 2.理解word文档内容的存储逻辑规则(这里只做简单概述) 一般做博文喜欢直接贴代码,直 ...

  10. EXTJS4.2 内存中操作表格数据时,删除表格数据,行号不连续解决

    需要重新刷新下表格的view => grid.view.refresh();

随机推荐

  1. 浅谈斜率优化DP

    前言 考试 T2 出题人放了个树上斜率优化 DP,直接被同校 OIER 吊起来锤. 离 NOIP 还有不到一周,赶紧学一点. 引入 斜率 斜率,数学.几何学名词,是表示一条直线(或曲线的切线)关于(横 ...

  2. Android RTL 语言适配

    RTL 语言,即 right to left language,也就是右对齐的语言,与一般语言按照左对齐的方式不同,需要进行特别适配. AndroidManifest.xml 文件中,增加 andro ...

  3. 微信开放平台微信公众平台微信小程序openid合法性验证

    我们获得了微信用户的openid,往往要把openid保存到服务器中的数据库里.有些场景需要检验openid的合法性,官方给了相应的验证接口如下: https://api.weixin.qq.com/ ...

  4. 城院导航小程序软件需求规范(SRS)(三期作业汇总)

    城院导航小程序软件需求规范(SRS) 1. 引言 1.1 目的 小帅小美们注意看!! 公主请批阅! 王子请批阅! 本文档描述了城院导航小程序的功能和非功能需求.它旨在为开发团队.导师和利益相关者提供清 ...

  5. 从ClickHouse通往MySQL的几条道路

    一.应用背景简介 ClickHouse 是 Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快 100-1000 倍.ClickHouse ...

  6. [GDOIpj221D] 小学生计数题

    第四题 小学生计数题 提交文件: counting.cpp 输入文件: counting.in 输出文件: counting.out 时间空间限制: 1 秒, 256 MB 作为 GDOI 的组题人, ...

  7. Net 高级调试之十三:托管堆的几个经典破坏问题

    一.介绍 今天是<Net 高级调试>的第十三篇文章,这篇文章写作时间的跨度有点长.这篇文章我们主要介绍 经典的案例,如何查找问题,如何解决问题,最重要我们看到了问题,要有解决的思路,没有思 ...

  8. Mybatis-Flex核心功能之@Id

    1.是什么? 在 Entity 类中,MyBatis-Flex 是使用 @Id 注解来标识主键的 2.怎么玩? public @interface Id { /** * ID 生成策略,默认为 non ...

  9. 数字孪生和GIS系统融合能为水利领域带来什么改变?

    随着科技的不断进步,数字孪生和GIS系统的融合应用逐渐成为了水利领域的新趋势.数字孪生是指通过数字化技术模拟物理实体和过程,将现实世界与虚拟世界相结合的技术,而GIS系统则是地理信息系统,用于收集.存 ...

  10. C# 获取另一程序控件,改变值,触发事件

    [DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern IntPtr ...