Преобразование столбцов в панелях данных panda в числовые значения при экспорте в Excel - PullRequest
0 голосов
/ 11 марта 2020

Я создал фрейм данных panda, вырезанный с веб-сайта, и экспортировал его в Excel, но числовые значения отображаются в текстовом формате в Excel, поэтому мне нужен был быстрый способ преобразования всех числовых значений в числа, которые затем можно анализировать в Excel. автоматически.

import requests
from bs4 import BeautifulSoup
import pandas as pd
from openpyxl import load_workbook
import csv
import os

def url_scraper(url):
    response=requests.get(url)
    html=response.text
    soup=BeautifulSoup(html,"html.parser")
    return soup

def first_inns_bowling_scorecard_scraper(url):
    soup=url_scraper(url)
    for divs in soup.find_all("div",{"id":"gp-inning-00"}):
        for bowling_div in soup.find_all("div",{"class":"scorecard-section bowling"}):
            table_headers=bowling_div.find_all("th")
            table_rows=bowling_div.find_all("tr")[1:]
    headers=[]
    for th in table_headers:
        headers.append(th.text)

    data = []
    for tr in table_rows:
        td = tr.find_all('td')
        row = [tr.text for tr in td]
        data.append(row)
    df=pd.DataFrame(data, columns=headers)
    df.drop(df.columns[[1,9]], axis = 1,inplace=True)
    df.to_excel(r'C:\\Users\\nathang\\Downloads\\random.xlsx',index = None, header=True)
    os.chdir('C:\\Users\\nathang\\Downloads')
    os.system("start EXCEL.EXE random.xlsx")
    return df

url="https://www.espncricinfo.com/series/19781/scorecard/1216418/afghanistan-vs-ireland-3rd-t20i-ireland-tour-of-india-2019-20"

first_inns_bowling_scorecard_scraper(url)

Я пробовал несколько разных вариантов df.apply (pd.to_numeri c) для отдельных столбцов, нескольких столбцов, всего набора данных и т. д., но ничего не могу получить работать на это. В идеале я хотел бы просто ввести в него весь фрейм данных и в случае ошибки игнорировать его.

1 Ответ

0 голосов
/ 11 марта 2020

Это может решить вашу проблему.

a = "5"
int(a) = 5
row = [int(tr.text) for tr in td]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...