python - Pandas 数据框:没有要绘制的数字数据
问题描述
我有一个存储在数据库中的表MySQL
。
我使用 MySQL 连接器获取结果并将其复制到 DataFrame。在那之前没有任何问题。
现在,当我从 MySQL 中获取结果时,它们是字符串的形式,所以我将的值转换为strings
,并将 as 保留为。现在我想将它绘制在条形图中,数字数据为 CONFIRMED_CASES,状态名称为 STATE_NAME,但它向我显示了这个错误:int
CONFIRMED_CASES
STATE_NAME
str
Traceback (most recent call last):
File "c:\Users\intel\Desktop\Covid Tracker\get_sql_data.py", line 66, in <module>
fd.get_graph()
File "c:\Users\intel\Desktop\Covid Tracker\get_sql_data.py", line 59, in get_graph
ax = df.plot(y='STATE_NAME', x='CONFIRMED_CASES',
...
raise TypeError("no numeric data to plot")
TypeError: no numeric data to plot
这是我的代码:
from operator import index
from sqlalchemy import create_engine
import mysql.connector
import pandas as pd
import matplotlib.pyplot as plt
mydb = mysql.connector.connect(
host="localhost",
user="abhay",
password="1234",
database="covid_db"
)
mycursor = mydb.cursor()
class fetch_data():
def __init__(self):
...
def get_data(self, cmd):
...
def get_graph(self):
mydb = mysql.connector.connect(
host="localhost",
user="abhay",
password="1234",
database="covid_db"
)
mycursor = mydb.cursor(buffered=True)
mycursor.execute(
"select CONFIRMED_CASES from india;")
query = mycursor.fetchall()
# the data was like 10,000 so I removed the ',' and converted it to int
query = [int(x[0].replace(',', '')) for x in query]
print(query)
query2 = mycursor.execute(
"select STATE_NAME from india;")
query2 = mycursor.fetchall()
# this is the query for state name and i kept it as str only...
query2 = [x[0] for x in query2]
print(query2)
df = pd.DataFrame({
'CONFIRMED_CASES': [query],
'STATE_NAME': [query2],
})
# it gives me the error here...
ax = df.plot(y='STATE_NAME', x='CONFIRMED_CASES',
kind='bar')
ax.ticklabel_format(style='plain', axis='y')
plt.show()
fd = fetch_data()
fd.get_graph()
我不知道为什么没有数值。我将它设置为int
,但仍然...
解决方案
在绘制图形之前,使用下面的代码将数据转换为整数。
df['CONFIRMED_CASES'] = df['CONFIRMED_CASES'].astype('int64')
推荐阅读
- google-chrome-extension - 调试时如何使用 chrome 黑盒内容脚本?
- python - 使用索引切片打印字符串中的每个单词
- docker - 从正在运行的容器创建 docker 映像
- javascript - 如何导出多个融合图以分离图像文件
- python - 如何在 Django 中从 views.py 中导入变量?
- google-my-business-api - 任何 GMB 位置的问答部分是否有任何预览 URL...?
- spring-boot - Java Spring Boot:使独立应用程序无需退出即可运行
- php - 如何只显示一次结果检查的消息
- java - 春季启动:java.lang.NoSuchMethodError:javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;
- json - json中特定变量后的jinja匹配字符串