原声php 读取excel乱码_Python 操作 Excel 教程(5) | 如何将在线汇率表转成 Excel?...

今天我们来,讲解一个实例;如何把网页上的汇率表以 Excel 的格式下载到本地;汇率表是不同国家之间的货币的兑换比例;通常来说,经常出境旅游的人,或者跨境电商、外贸行业等经常与外币打交道的人会较为关心汇率的情况;通常我们可以网络上或者手机端查找到汇率表,那么如何将汇率表,下载到本地,以 Excel 的形式保存呢?


01 首先在网络上查找到汇率表的嵌入表格

themoneyconverter是一家提供汇率信息的网站,它也提供了嵌入式的汇率表格;如下图所示:

240e3f97e3d8dd6453d04bbb271fd16a.png

它提供了 3 个汇率子表,其实我们只需要第 1 个表格的汇率信息即可


02 安装 Pandas、Numpy、Openpyxl 和 lxml

我们在代码中,需要用到Pandas、Numpy、Openpyxl和lxml四个库;使用命令如下:

# 安装pandas库,其中Numpy是其依赖库,所以会自动安装;但如果先安装了Numpy就得继续安装Pandaspip install pandas
# 安装Opnepyxl库pip install openpyxl
# 安装lxml库pip install lxml

03 查看网页表格的结构

我们在网页汇率表,右键单击审查元素

3413dc7df06013cada19e1e9a1face1a.png
0c5192384a0db7903df21c691700a23a.png

然后可以看到,所有的数据其实都在

内,这也是 Pandas 能正常读取表格数据的前提条件,如果是其他格式,很可能会乱码

04 使用 Pandas 读取并保存数据

导入 Pandas 库,并传入url参数

import pandas as pd#将网页汇率表作为url地址参数url = "https://themoneyconverter.com/CN/CurrencyConverter?tab=1&from=USD&to=CNY&bg=ffffff"#使用pd.read_html()函数进行读取解析html_data = pd.read_html(url)#因为有3个子表,我们只需要第1个,将索引设置为0,并转换成DataFrametab = pd.DataFrame(html_data[0])print(tab)
9f5387eeb28f5c8cc3bc1ce16352b67f.png

可以看到,数据与网页端的大致一致,只是国旗图标部分现在成了 NaN; 我们只提取用到的数据,使用iloc[]分别提取数据

df1 = tab.iloc[:,1:3]df2 = tab.iloc[:,4:6]print(df1)print(df2)
a541ea0bcac6120406fa884924532508.png

可以看到,它们的列名不一致,我们使用df.columns = ['币种','汇率']重新命名 DataFrame 列名

df1.columns = ['币种','汇率']df2.columns = ['币种','汇率']print(df1)print(df2)
22044733be9656ccdc97578b6c812566.png

可以看到,已经修改列名成功 然后我们使用df.append()函数,将 2 个DataFrame合并为 1 个新的DataFrame

tab2 = df1.append(df2,ignore_index = True)

最后,将DataFrame输出为Excel,因为 Pandas 会自动生成行号索引,如不需要则使用index = None标记;

完整代码如下:

import pandas as pdurl = "https://themoneyconverter.com/CN/CurrencyConverter?tab=1&from=USD&to=CNY&bg=ffffff"html_data = pd.read_html(url)tab = pd.DataFrame(html_data[0])df1 = tab.iloc[:,1:3]df2 = tab.iloc[:,4:6]df1.columns = ['币种','汇率']df2.columns = ['币种','汇率']tab2 = df1.append(df2,ignore_index = True)#如Excel默认与代码文件保存在同一文件夹,如需指定则需要将路径写全tab2.to_excel("汇率.xlsx",index = None)print("读取汇率表成功")
41b132cb8672078f52410444e81b86b7.png

注意:运行代码时,不要打开同名的 Excel 表格,否则会报错


今天的教程,主要学习了:读取网页汇率表,并转换成Pandas的DataFrame数据框,并做了提取和合并;大家都学会了吗?

欢迎关注公众号:KnowHub 知识加油站

后续我们会循序渐进的学习OpenpyXl以及其他的Excel操作库,欢迎大家关注!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值