python - 如何从 Python 中的字符串中删除某些字符或仅从中提取一些行?
问题描述
我正在使用 Pandas 接收实时黄金价格,我只想清理输出,使其看起来不错且可读。请帮我解决这个问题。
我的代码:
import pandas as pd
d = pd.read_html('http://www.livepriceofgold.com/pakistan-gold-price.html')
type(d)
a=len(d)
i=1
df = d[3]
finalString=df.to_string()
print(finalString)
和输出是:
0 1 2
0 NaN Gold Rate in PKR Pakistani rupee Rate
1 NaN Gold Rate per Gram in PKR 7 889.65
2 NaN Gold Rate per Oz in PKR 245 368.02
3 NaN Gold Rate per KG in PKR 7 889 646.96
4 NaN Gold Rate per Tola in PKR 92 023.26
我想要这种类型的输出:
Gram in PKR: 7 889.65
Oz in PKR : 245 368.02
KG in PKR : 7 889 646.96
Tola in PKR: 92 023.26
或者只是提取变量中的费率
解决方案
您可以将header=0
第一行数据的参数添加到列名,以便在第一步thousands=' '
中删除空格。read_html
然后通过索引删除第一列DataFrame.iloc
,设置新列名并更改Text
列中的值Series.replace
:
url = 'http://www.livepriceofgold.com/pakistan-gold-price.html'
df = pd.read_html(url, header=0, thousands=' ')[3].iloc[:, 1:]
df.columns= ['Text','Rates']
df['Text'] = df['Text'].replace('Gold Rate per ', '', regex=True)
print (df)
Text Rates
0 Gram in PKR 7889.65
1 Oz in PKR 245368.02
2 KG in PKR 7889646.96
3 Tola in PKR 92023.26
推荐阅读
- fortran - 是什么导致 fotran 排名不匹配错误
- .net - 如何在 ASP .Net Mvc 5 中使用 Linkedin 登录
- python - Pytesseract 和 Homebrew 安装总是失败
- c# - 在 Mono Mac 上调用 WCF 客户端通道上的 Close() 超时,但在 Windows 上有效
- javascript - Inline-if always uses the true condition
- javascript - 更新博览会后:元素类型无效:需要字符串(用于内置组件)或类/函数
- javascript - Ng-View 不显示数据
- oracle - 无法从 SSIS 运行 Oracle 存储过程(VS 2019)
- html - 使用锚点单击打开折叠的容器
- r - 跨数据集统一列名