一文看懂用Python读取Excel数据

640?wx_fmt=gif

导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上)。

 

Python处理Excel文件主要是第三方模块库xlrd、xlwt、pyexcel-xls、xluntils和pyExcel-erator等,此外Pandas中也带有可以读取Excel文件的模块(read_excel)。

 

基于扩展知识的目的,本文使用xlrd模块读取Excel数据。

 

作者:宋天龙
来源:大数据DT(ID:bigdatadt)

 

640?wx_fmt=jpeg

 

首先安装该库,Anaconda中已经默认安装了xlrd和xlwt模块,用于Excel的读写操作。如果读者系统环境中没有,可以在Jupyter输入以下命令安装。

 

!pip install xlrd

 

然后我们以“附件-chapter2”文件夹中的demo.xlsx数据文件为例,介绍该库的具体应用。

 

附件下载地址:

http://www.dataivy.cn/book/python_book_v2.zip

 

数据概览如图所示。

 

640?wx_fmt=png

▲数据文件内容

 

import xlrd  # 导入库
# 打开文件
xlsx = xlrd.open_workbook('demo.xlsx')
# 查看所有sheet列表
print('All sheets: %s' % xlsx.sheet_names())

 

上述代码中,我们先读取一个Excel文件,输出文件的sheet名称列表。由于里面只有一张sheet,一次只有一个值。

 

结果为:

 

All sheets: ['Sheet1']

 

查看sheet1的数据概况:

 

sheet1 = xlsx.sheets()[0]    # 获得第1张sheet,索引从0开始
sheet1_name = sheet1.name    # 获得名称
sheet1_cols = sheet1.ncols   # 获得列数
sheet1_nrows = sheet1.nrows  # 获得行数
print('Sheet1 Name: %s\nSheet1 cols: %s\nSheet1 rows: %s' % (sheet1_name, sheet1_cols, sheet1_nrows))

 

我们分别获取了第1张sheet(虽然里面只有一张,但在多sheet情况下可通过索引循环输出)的名称、列数量和行数据。结果如下:

 

Sheet1 Name: sheet1
Sheet1 cols: 4
Sheet1 rows: 10

 

查看sheet1的特定切片数据:

 

sheet1_nrows4 = sheet1.row_values(4)  # 获得第4行数据
sheet1_cols2 = sheet1.col_values(2)   # 获得第2列数据
cell23 = sheet1.row(2)[3].value       # 查看第3行第4列数据
print('Row 4: %s\nCol 2: %s\nCell 1: %s\n' % (sheet1_nrows4, sheet1_cols2, cell23))

 

通过查看特定行、列或行列组合的索引来输出,结果如下:

 

Row 4: ['431381197408191515', '有效', 42725.0, '深圳市']
Col 2: ['Create_Time', 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0]
Cell 1: 深圳市

 

查看sheet1的数据明细:

 

for i in range(sheet1_nrows):  # 逐行打印sheet1数据
    print(sheet1.row_values(i))

 

逐条输出结果,部分结果如下(为了节约篇幅,中间的数据内容以…代替):

 

['ID_number', 'Status', 'Create_Time', 'Business_City']
['431381198109106573', '有效', 42725.0, '深圳市']
['431381198809122734', '有效', 42725.0, '深圳市']
…
['431381198901176911', '有效', 42725.0, '深圳市']
['43138119870827275X', '有效', 42725.0, '深圳市']

 

上述操作只是将数据从Excel中读取出来,将读取的数据转换为数组便可以进行矩阵计算。由于矩阵计算大多是基于数值型数据实现的,因此上述数据将无法适用于大多数科学计算场景,这点需要注意。

 

总结:在企业实际场景中,由于Excel本身的限制和适用,其无法存储和计算过大(例如千万级的数据记录)的数据量,并且Excel本身也不是为了海量数据的应用而产生的,因此,Excel可以作为日常基本数据处理、补充数据来源或者汇总级别的数据进行读取,同时也可以作为数据结果展示的载体,这种应用下对于大量数值表格的应用效果非常好。

 

关于作者:宋天龙,深大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(德国最大在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设计、业务需求转换、数据结构梳理、数据建模与学习以及数据工程交付。在电子商务、零售、银行、保险等多个行业拥有丰富的数据项目工作经验。

 

本文摘编自《Python数据分析与数据化运营》(第2版),经出版方授权发布。

 

 
延伸阅读《Python数据分析与数据化运营》
(第2版)
点击上图了解及购买
转载请联系微信:DoctorData

 

推荐语:这是一本将数据分析技术与数据使用场景深度结合的著作,从实战角度讲解了如何利用Python进行数据分析和数据化运营。本书与同类书大的不同在于,并不只有纯粹的关于数据分析技术和工具的讲解,而且还与数据使用场景深度结合,在业务上真正可指导落地。此外,本书作者提供微信、邮箱等,可通过实时和离线两种方式及时为读者在线传道、受业、解惑。

 

640?

 

 

 

640?

 

有话要说👇

 

Q:  你打算去哪看看?
欢迎留言与大家分享

 

猜你想看👇

 

 

更多精彩👇

 

在公众号对话框输入以下 关键词
查看更多优质内容!

 

PPT |  报告 |  读书 |  书单 |  干货  
大数据 |  揭秘 |  Python |  可视化
AI |  人工智能 |  5G |  中台
机器学习 |  深度学习 |  神经网络
合伙人  1024 |  段子 |  数学

 

  • 10
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,你可以使用Pandas库来保存数据Excel文件。首先,你需要导入所需的库和模块,如Pandas、openpyxl和numpy。然后,你可以使用Pandas的DataFrame来创建你的数据,并将其保存到Excel文件中。 下面是一个保存数据Excel文件的示例代码: ```python import pandas as pd # 创建数据 data = {'Name': \['John', 'Emma', 'Mike'\], 'Age': \[25, 28, 30\], 'City': \['New York', 'London', 'Paris'\]} # 创建DataFrame df = pd.DataFrame(data) # 保存数据Excel文件 df.to_excel('data.xlsx', index=False) ``` 在这个示例中,我们首先创建了一个包含姓名、年龄和城市的字典数据。然后,我们使用Pandas的DataFrame将字典数据转换为数据框。最后,我们使用DataFrame的`to_excel`方法将数据保存到名为"data.xlsx"的Excel文件中。通过设置`index=False`,我们可以避免将索引列保存到Excel文件中。 请注意,保存数据Excel文件之前,你需要确保已经安装了所需的库和模块,如Pandas和openpyxl。你可以使用`pip`命令来安装它们: ``` pip install pandas openpyxl ``` 希望这个示例能帮助到你! #### 引用[.reference_title] - *1* [一文学会用Python读取Excel数据并保存](https://blog.csdn.net/veratata/article/details/128276183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python学习笔记(二)Excel保存数据](https://blog.csdn.net/Xuanze_xx/article/details/107926186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值