Как удалить некоторые символы из строки в Python или просто извлечь из нее несколько строк? - PullRequest
1 голос
/ 01 марта 2020

Я использую 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

Или просто извлекать цены в переменных

Ответы [ 2 ]

1 голос
/ 01 марта 2020

Вы можете добавить 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
0 голосов
/ 01 марта 2020

До сих пор я использовал это, чтобы удалить все, а затем разделить эти строки и извлечь нужные значения, используя функцию разделения

 fs=fs.replace("Gold Rate per Gram in PKR","")
    fs=fs.replace("Gold Rate per Oz in PKR","")
    fs=fs.replace("Gold Rate per KG in PKR","")
    fs=fs.replace("Gold Rate per Tola in PKR","")
    fs=fs.replace("Gold Rate in PKR Pakistani rupee","")
    fs=fs.replace("Rate","")
    fs=fs.replace("0 NaN","")
    fs=fs.replace("1 NaN","")
    fs=fs.replace("2 NaN","")
    fs=fs.replace("3 NaN","")
    fs=fs.replace("4 NaN","")
    #print(fs.split())
    single= fs.split()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...