Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将带有comas的dataframe中的列转换为数字数据以进行打印_Python_Python 3.x_Pandas_Matplotlib_Beautifulsoup - Fatal编程技术网

Python 将带有comas的dataframe中的列转换为数字数据以进行打印

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:/

我是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://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,以便将其解释为数字类型。距离之旅!