.net 将html写成的table 转换成excel_Python 操作 Excel 教程(5) | 如何将在线汇率表转成本地Excel?...

Python 操作 Excel 教程(5) | 如何将在线汇率表转成本地 Excel?

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


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

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

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


02 安装 Pandas、Numpy、Openpyxl 和 lxml

我们在代码中,需要用到PandasNumpyOpenpyxllxml四个库;使用命令如下:

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

03 查看网页表格的结构

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

8ca10ab8c98dd5fdcee6a8b04e99797d.png
93be63854b592fc12c213e9cca3ac517.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,并转换成DataFrame
tab = pd.DataFrame(html_data[0])
print(tab)

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

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

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

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

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

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

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

完整代码如下:

import pandas as pd

url = "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("读取汇率表成功")

84213b1f4b8bd32ff14ccbbb5eb36bdb.png

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


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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值