Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

Freigeben: 2023-08-10 14:43:56
nach vorne
1312 Leute haben es durchsucht

In dieser Ausgabe analysieren wir die Arzneimittelverkaufsdaten eines bestimmten Krankenhauses innerhalb eines halben Jahres, um zu sehen, welche Krankenhäuser mehr Arzneimittelkäufer haben, an welchen Tagen mehr Arzneimittelkäufer usw. Wir hoffen, dass dies der Fall ist Seien Sie hilfreich für unsere Freunde.
Beteiligte Bibliotheken:
  • Pandas – Datenverarbeitung

  • .

    Pyecharts – Datenvisualisierung

  • Sammlungen – Datenstatistik

Visualisierungsteil:

  • Linie – Liniendiagramm
  • Balken – Balkendiagramm
  • Kalender – Kalender
  • stylecloud — Wortwolke

Kommen wir zum Punkt~~

P andas Datenverarbeitung

2.1 Daten lesen
import jieba
import stylecloud
import pandas as pd
from PIL import Image
from collections import Counter
from pyecharts.charts import Geo
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts.charts import Pie
from pyecharts.charts import Calendar
from pyecharts.charts import WordCloud
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType,SymbolType,ChartType
Nach dem Login kopieren
Ergebnis:

2.2 Datengröße
df = pd.read_excel("医院药品销售数据.xlsx")
Nach dem Login kopieren
df.shape
Nach dem Login kopieren
insgesamt

6578

Pharmakaufdaten
.

2.3 查看索引、数据类型和内存信息

df.info()
Nach dem Login kopieren
部分列存在数据缺失。
Nach dem Login kopieren

2.4 统计空值数据

df.isnull().sum()
Nach dem Login kopieren

Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

2.5 输出空行

df[df.isnull().T.any()]
Nach dem Login kopieren
Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus
因为购药时间在后面的分析中会用到,所以我们将购药时间为空的行删除,社保卡号用"000"填充,社保卡号、商品编码为一串数字,应为str类型,销售数量应为int类型:
df1 = df.copy()
df1 = df1.dropna(subset=['购药时间'])
df1[df1.isnull().T.any()]
df1['社保卡号'].fillna('0000', inplace=True)
df1['社保卡号'] = df1['社保卡号'].astype(str)
df1['商品编码'] = df1['商品编码'].astype(str)
df1['销售数量'] = df1['销售数量'].astype(int)
Nach dem Login kopieren
Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

2.6 销售数量,应收金额,实收金额三列的统计情况

df1[['销售数量','应收金额','实收金额']].describe()
Nach dem Login kopieren
Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus
数据中存在负值,显然不合理,我们将其转换为正值:
df2 = df1.copy()
df2['销售数量'] = df2['销售数量'].abs()
df2['应收金额'] = df2['应收金额'].abs()
df2['实收金额'] = df2['实收金额'].abs()
Nach dem Login kopieren
Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

2.7 列拆分(购药时间列拆分为两列)

df3 = df2.copy()
df3[['购药日期', '星期']] = df3['购药时间'].str.split(' ', 2, expand = True)
df3 = df3[['购药日期', '星期','社保卡号','商品编码', '商品名称', '销售数量', '应收金额', '实收金额' ]]
Nach dem Login kopieren

Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus


3. Pyecharts数据可视化

3.1 一周各天药品销量柱状图

代码:

color_js = """new echarts.graphic.LinearGradient(0, 1, 0, 0,
    [{offset: 0, color: '#FFFFFF'}, {offset: 1, color: '#ed1941'}], false)"""

g1 = df3.groupby('星期').sum()
x_data = list(g1.index)
y_data = g1['销售数量'].values.tolist()
b1 = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis('',y_data ,itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
        .set_global_opts(title_opts=opts.TitleOpts(title='一周各天药品销量',pos_top='2%',pos_left = 'center'),
            legend_opts=opts.LegendOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
            yaxis_opts=opts.AxisOpts(name="销量",name_location='middle',name_gap=50,name_textstyle_opts=opts.TextStyleOpts(font_size=16)))

    )
b1.render_notebook()
Nach dem Login kopieren

Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

每天销量整理相差不大,周五、周六偏于购药高峰

3.2 药品销量前十柱状图

代码:

color_js = """new echarts.graphic.LinearGradient(0, 1, 0, 0,
    [{offset: 0, color: '#FFFFFF'}, {offset: 1, color: '#08519c'}], false)"""

g2 = df3.groupby('商品名称').sum().sort_values(by='销售数量', ascending=False)
x_data = list(g2.index)[:10]
y_data = g2['销售数量'].values.tolist()[:10]
b2 = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis('',y_data ,itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
        .set_global_opts(title_opts=opts.TitleOpts(title='药品销量前十',pos_top='2%',pos_left = 'center'),
            legend_opts=opts.LegendOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
            yaxis_opts=opts.AxisOpts(name="销量",name_location='middle',name_gap=50,name_textstyle_opts=opts.TextStyleOpts(font_size=16)))

    )
b2.render_notebook()
Nach dem Login kopieren
Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

可以看出:苯磺 酸氨氯地平片(安内真)开博通酒石酸美托洛尔片(倍他乐克)等治疗高血压、心绞痛药物购买量比较多。。

3.3 Top-Ten-Histogramm der Arzneimittelverkäufe

Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

Umsätze sind grundsätzlich proportional zum Umsatz. 3.4 Tägliche Bestellungen für eine Woche und der Samstag ist tendenziell mehr Shopping-Drogen-Hochsaison
.
3,5 Anzahl der Bestellungen pro Tag in einem natürlichen Monat

Pandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus

Es ist ersichtlich, dass der 5., 15. und 25. die Spitzenzeiten für Arzneimittelverkäufe sind, insbesondere der 15. eines jeden Monats . 3,6 Kalenderdiagramm

Aus Platzgründen werden einige Codes nicht vollständig angezeigt. Bei Bedarf können Sie sie auch online abrufen (einschließlich aller Code- und Datendateien) https://www.heywhale.com/mw/project/61b83bd9c63c620017c629bc

Das obige ist der detaillierte Inhalt vonPandas+Pyecharts |. Visualisierung der Arzneimittelverkaufsdaten im Krankenhaus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Python当打之年
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage