gpt4 book ai didi

python - 如何使用 mysql 表中的信息创建条形图?

转载 作者:行者123 更新时间:2023-11-29 10:11:42 25 4
gpt4 key购买 nike

如何使用数据库表(mysql)中的信息创建绘图?因此,对于 x 轴,我想使用 id 列,对于 y 轴,我想使用 items in cart(number)。您可以根据需要使用任何库,只要它能给出我想要的结果。现在,在我的绘图(我附上照片)中的 x 标签上,它给出了 500 的间隔(0,500,1000 等),但我想要 ids(1,2,3,4,...3024) 和y 标签 我想查看购物车中的商品。我附上了代码。我将不胜感激任何帮助。

enter image description here

import pymysql
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

conn = pymysql.connect(host='localhost', user='root', passwd='', db='amazon_cart')

cur = conn.cursor()
x = cur.execute("SELECT `id`,`items in cart(number)`,`product title` FROM `csv_9_05`")

plt.xlabel('Product Id')
plt.ylabel('Items in cart(number)')

rows = cur.fetchall()
df = pd.DataFrame([[xy for xy in x] for x in rows])

x=df[0]
y=df[1]

plt.bar(x,y)

plt.show()

cur.close()
conn.close()

表的 SQL

DROP TABLE IF EXISTS `csv_9_05`;
CREATE TABLE IF NOT EXISTS `csv_9_05` (
`id` int(50) NOT NULL AUTO_INCREMENT,
`product title` varchar(2040) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`product price` varchar(55) NOT NULL,
`items in cart` varchar(2020) DEFAULT NULL,
`items in cart(number)` varchar(50) DEFAULT NULL,
`link` varchar(2024) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3025 DEFAULT CHARSET=latin1;

最佳答案

嗯...我认为重组您的数据库将使您的很多事情变得更加容易。鉴于您在此处提供的架构,我建议增加您拥有的表的数量并进行一些联接。此外,整数值(购物车中的商品数量)的数据类型应为 int,而不是 varchar。您的表字段名称中不应包含空格,并且我不确定为什么产品的 id购物车 中的产品数量被赋予 1-to -1 关系。

但这是一个单独的问题。仅重建此数据库可能比您所询问的特定任务需要更多工作。您确实应该重新格式化您的数据库,如果您对如何格式化有疑问,请告诉我。但现在我会根据您当前的配置尝试回答您的问题。

我不太熟悉 Pandas,所以我将在不使用该模块的情况下回答这个问题。

如果你像这样声明你的光标:

cursor = conn.cursor(pymysql.cursors.DictCursor)
x = cur.execute("SELECT `id`,`items in cart(number)`,`product title` FROM `csv_9_05`")

然后您的行将作为 3024 个字典的列表返回,即:

rows = cursor.fetchall()

# this will produce the following list:
# rows = [
# {'id': 1, 'items in cart(number)': 12, 'product_title': 'hammer'},
# {'id': 2, 'items in cart(number)': 5, 'product_title': 'nails'},
# {...},
# {'id': 3024, 'items in cart(number)': 31, 'product_title': 'watermelons'}
# ]

然后,绘图变得非常容易。

plt.figure(1)
plt.bar([x['id'] for x in rows], [y['items in cart(number)'] for y in rows])
plt.xlabel('Product Id')
plt.ylabel('Items in cart(number)')
plt.show()
plt.close()

我认为应该可以。

关于python - 如何使用 mysql 表中的信息创建条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50854898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com