我目前正在进行一个Python项目,从Microsoft SQL Server数据库中获取数据,然后使用Pandas将其转换为图形视图,但是由于我从数据库中获取的数组,它似乎无法工作。
# Import Modules
import pandas as pd # Graph Module
import pyodbc # Microsoft SQL Server Module
# Connection string
conn_str = (
"DRIVER={SQL Server Native Client 11.0};"
"SERVER=server,port;"
"DATABASE=db;"
"UID=user;"
"PWD=pass;"
)
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute("SELECT DISTINCT processname AS 'Proces Naam' FROM table WHERE status = 'Aborted' ORDER BY processname ASC")
result = cursor.fetchall()
print(result)
当前输出:
[('proces1', ), ('proces2', ), ('proces3', ), ('proces4', ), ('proces5', ), ('proces6', ), ('proces7', )]
所需输出:
['proces1','proces2','proces3','proces4','proces5','proces6','proces7']
我正尝试将此输出用于Pandas图条形图,但它目前无法与上面显示的Current Output配合使用。我曾尝试使用result = cursor.fetchone()
,但它确实可以工作,当然,它只适用于一个结果,而不是图形中需要的所有结果。result = cursor.fetchone()
的输出如下所示;
('proces1', )
这很奇怪,因为这个输出确实有效。
这是我用来制作Pandas图的代码:
# Set Dataset
dataset={
'PROCESS':[result],
'ABORTS':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] # just some random placeholder numbers. I know the result of the query is 17 rows of procesnames
}
# Create Graph
df = pd.DataFrame(data=dataset)
df.plot.bar(title="Aborts", x='PROCESS')
这是我当前的错误代码;
"name": "ValueError",
"message": "arrays must all be same length",
有人知道清理这个数组的好方法吗,或者对Pandas有更好的理解,以及如何让这个图工作,非常感谢。
1条答案
按热度按时间ct3nt3jp1#
您可以尝试: