首页 > 解决方案 > 如何从 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

或者只是提取变量中的费率

标签: pythonpandasdataframe

解决方案


您可以将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

推荐阅读