当前位置:首页 > > AI科技大本营
[导读]作者|周萝卜来源|萝卜大杂烩通常情况下,我们使用Pandas来读取Excel数据,可以很方便的把数据转化为DataFrame类型。但是现实情况往往很骨干,当我们遇到结构不是特别良好的Excel的时候,常规的Pandas读取操作就不怎么好用了,今天我们就来看两个读取非常规结构Exc...

两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!作者 | 周萝卜来源 | 萝卜大杂烩通常情况下,我们使用 Pandas 来读取 Excel 数据,可以很方便的把数据转化为 DataFrame 类型。但是现实情况往往很骨干,当我们遇到结构不是特别良好的 Excel 的时候,常规的 Pandas 读取操作就不怎么好用了,今天我们就来看两个读取非常规结构 Excel 数据的例子
两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!本文使用的测试 Excel 内容如下两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!
两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!文末可以获取到该文件

指定列读取

一般情况下,我们使用 read_excel 函数读取 Excel 数据时,都是默认从第 A 列开始读取的,但是对于某些 Excel 数据,往往不是从第 A 列就有数据的,此时我们需要参数 usecols 来进行规避处理比如上面的 Excel 数据,如果我们直接使用 read_excel(src_file) 读取,会得到如下结果两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!我们得到了很多未命名的列以及很多我们根本不需要的列数据此时我们可以通过 usecols 来指定读取哪些列数据from pathlib import Path
src_file = Path.cwd() / 'shipping_tables.xlsx'

df = pd.read_excel(src_file, header=1, usecols='B:F')

两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!可以看到生成的 DataFrame 中只包含我们需要的数据,特意排除了 notes 列和 date 字段usecols 可以接受一个 Excel 列的范围,例如 B:F 并仅读取这些列,header 参数需要一个定义标题列的整数,它的索引从0开始,所以我们传入 1,也就是 Excel 中的第 2 行我们也可以将列定义为数字列表df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])
也可以通过列名称来选择所需的列数据df = pd.read_excel(
src_file,
header=1,
usecols=['item_type', 'order id', 'order date', 'state', 'priority'])
这种做法在列的顺序改变但是列的名称不变的时候非常有用
最后,usecols 还可以接受一个可调用的函数def column_check(x):
if 'unnamed' in x.lower():
return False
if 'priority' in x.lower():
return False
if 'order' in x.lower():
return True
return True

df = pd.read_excel(src_file, header=1, usecols=column_check)
该函数将按名称解析每一列,并且必须为每一列返回 True 或 False当然也可以使用 lambda 表达式cols_to_use = ['item_type', 'order id', 'order date', 'state', 'priority']
df = pd.read_excel(src_file,
header=1,
usecols=lambda x: x.lower() in cols_to_use)

范围和表格

在某些情况下,Excel 中的数据可能会更加不确定,在我们的 Excel 数据中,我们有一个想要读取的名为 ship_cost 的表,这该怎么获取呢两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!在这种情况下,我们可以直接使用 openpyxl 来解析 Excel 文件并将数据转换为 pandas DataFrame以下是使用 openpyxl(安装后)读取 Excel 文件的方法:from openpyxl import load_workbook
import pandas as pd
from pathlib import Path
src_file = src_file = Path.cwd() / 'shipping_tables.xlsx'

wb = load_workbook(filename = src_file)
查看所有的 sheet 页,获取某个 sheet 页,获取 Excel 范围数据wb.sheetnames
sheet = wb['shipping_rates']
lookup_table = sheet.tables['ship_cost']
lookup_table.ref

两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!现在我们以及知道要加载的数据范围了, 接下来就是将该范围转换为 Pandas DataFrame# 获取数据范围
data = sheet[lookup_table.ref]
rows_list = []

# 循环获取数据
for row in data:
cols = []
for col in row:
cols.append(col.value)
rows_list.append(cols)


df = pd.DataFrame(data=rows_list[1:], index=None, columns=rows_list[0])

两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!这样我们就获取到了干净的表数据了好了,今天的两个小知识点就分享到这里了,我们下次再见!两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭