Python 将带有comas的dataframe中的列转换为数字数据以进行打印
我是Python绘图领域的新手,我今天开始学习自己做一个小项目,我试图收集数据并表示以下代码:Python 将带有comas的dataframe中的列转换为数字数据以进行打印,python,python-3.x,pandas,matplotlib,beautifulsoup,Python,Python 3.x,Pandas,Matplotlib,Beautifulsoup,我是Python绘图领域的新手,我今天开始学习自己做一个小项目,我试图收集数据并表示以下代码: import requests import pandas as pd from pandas import DataFrame import numpy as np import bs4 from bs4 import BeautifulSoup import matplotlib.pyplot as plot # Getting the HTML page URL = "https:/
import requests
import pandas as pd
from pandas import DataFrame
import numpy as np
import bs4
from bs4 import BeautifulSoup
import matplotlib.pyplot as plot
# Getting the HTML page
URL = "https://www.worldometers.info/coronavirus/#countries"
pag_html = requests.get(URL).text
# Extracting data with BeautifulSoup.
soup = BeautifulSoup(pag_html, 'html.parser')
tabla = soup.find("table", id="main_table_countries_today")
datos_tabla = tabla.tbody.find_all("tr")
Lista = []
for x in range(len(datos_tabla)):
values = [j.string for j in datos_tabla[x].find_all('td')]
Lista.append(values)
df = pd.DataFrame(Lista).iloc[7: , 1:9]
nombre_columna = ["Pais", "Casos totales", "Nuevos Casos", "Muertes totales", "Nuevas Muertes", "Total Recuperados", "Nuevos Recuperados", "Activos"]
df.columns = nombre_columna
df.plot(x="Pais", y="Casos totales", kind ="barh")
plot.show()
它给我的错误是:“TypeError:no numeric data to plot”,我知道这个错误是因为“Casos totales”列是一个字符串而不是一个浮点。
我试图将数据帧中的列转换为浮点数,但我不可能从任何地方得到错误。
有人知道如何表示我的数据帧吗
谢谢。在运行脚本之后,正如您所说,“Casos Totales”列由于值中的逗号而被解释为字符串。您可以在重命名数据框中的列名后,使用
.str.replace(',','')
然后使用.astype(float)
更改此设置:
df['Casos totales'] = df['Casos totales'].str.replace(',','').astype(float)
df.plot(x="Pais", y="Casos totales", kind ="barh")
plot.show()
这会绘制出图形(虽然可视化效果很差,但这是另一回事)没问题。我看到其他列也有一些其他符号,例如“+”。您应该遵循相同的技术,将其替换为nothing,以便将其解释为数字类型。距离之旅!