开发者社区> 问答> 正文

使用Pandas的matplotlib条形图从数据库计数?

我一直在尝试学习一些数据分析,并且一直在尝试写一些东西来研究不同事物的“计数”。

因此,db具有有关工作场所事故的信息,基本上是当有人受伤时可以填写的所有内容,以便分析并查看事故发生的时间和地点。

例如,哪个“班次”的事故最多,哪个“部门”的事故,一天中什么时候发生的事故最多,诸如此类。

我一直在搞乱它,似乎无法像id那样使它工作。

现在,我只是想让它为轮班工作,我感觉好像我可以让它为轮班工作我可能可以让它为其他所有事情工作。

因此,我需要它来显示每个班次发生了多少事故。

但是当我尝试制作图表时,它甚至只显示了整个图表。看起来它显示了每个班次下所有事故的总“计数”。在我的DB中,我发生了29次不同的事故。

所以就像图所示

1A-29 2A-29 1B-29

什么时候应该是这样

1A-13 2A-8 1B-8

我已经尝试了好几个小时来解决这个问题,但似乎无法解决。

我只用了

counter = df.groupby(['shift'])['shift']。count()print(counter)

看看它是否在给我我想要的信息,它做了。当我将其制作成图表时,我只是无法使它正确执行。

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

conn = sqlite3.connect('accident.db')
c = conn.cursor()
df = pd.read_sql_query("Select * from accidents", conn)

df['count'] = 1

counter = df.groupby(['shift']) ['shift'].count()
print(counter)

plt.bar(df['shift'], df['count'].count())
plt.show()

c.execute("""CREATE TABLE IF NOT EXISTS accidents(
            reference real,
            first text,
            last text,
            date real,
            time real,
            department text,
            class text,
            type text,
            shift blob
            )""")

#

conn.commit()
conn.close()

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 23:54:25 669 0
1 条回答
写回答
取消 提交回答
  • 看上去可能需要这样:

    df.groupby(['shift'])
        .count()['count']
        .plot(kind='bar')
    

    回答来源:stackoverflow

    2020-03-24 23:54:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022云栖大会:达摩院加持下的数据库技术前沿 立即下载
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载