>  기사  >  백엔드 개발  >  Pandas+Pyecharts 병원 약품 판매 데이터 시각화

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

Python当打之年
Python当打之年앞으로
2023-08-10 14:43:561251검색

이번 호에서는 반년 이내에 특정 병원의 약품 판매 데이터를 분석하여 어느 병원에 약품 구매자가 많은지, 어느 날 약품 구매자가 많은지 등을 분석해보겠습니다. 우리 친구들에게 도움이 되었어요.
관련 라이브러리:
  • Pandas — 데이터 처리

  • Pyecharts — 데이터 시각화

  • 컬렉션 — 데이터 통계

시각화 부분:

  • Line — 꺾은선형 차트
  • Bar — 막대형 차트
  • Calendar— 달력
  • stylecloud — 워드 클라우드

본론으로 들어가죠~~

P andas 데이터 처리

2.1 데이터 읽기
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
결과:

2.2 데이터 크기
df = pd.read_excel("医院药品销售数据.xlsx")
df.shape

6578

의약품 구매 데이터
.

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

df.info()
部分列存在数据缺失。

2.4 统计空值数据 

df.isnull().sum()

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

2.5 输出空行 

df[df.isnull().T.any()]
Pandas+Pyecharts 병원 약품 판매 데이터 시각화
因为购药时间在后面的分析中会用到,所以我们将购药时间为空的行删除,社保卡号用"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)
Pandas+Pyecharts 병원 약품 판매 데이터 시각화

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

df1[['销售数量','应收金额','实收金额']].describe()
Pandas+Pyecharts 병원 약품 판매 데이터 시각화
数据中存在负值,显然不合理,我们将其转换为正值:
df2 = df1.copy()
df2['销售数量'] = df2['销售数量'].abs()
df2['应收金额'] = df2['应收金额'].abs()
df2['实收金额'] = df2['实收金额'].abs()
Pandas+Pyecharts 병원 약품 판매 데이터 시각화

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

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

Pandas+Pyecharts 병원 약품 판매 데이터 시각화


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()

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

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

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()
Pandas+Pyecharts 병원 약품 판매 데이터 시각화

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

3.3 상위 10개 의약품 판매 막대형 차트

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

매출은 기본적으로 매출에 비례합니다.
3.4 일주일 동안의 일일 주문

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

요일별 데이터 분포에서 매일판매가 크게 다르지 않고, 금요일과 토요일이 경향입니다. 더 많은 인기를 얻으려면 Drug peak .
3.5 자연월 일일 주문 수

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

5일, 15일, 25일이 약품 판매의 성수기임을 알 수 있으며, 특히 매월 15일은 더욱 그렇습니다. .
3.6 캘린더 차트
캘린더 차트를 통해 한 달 내 일일 및 주간 매출을 보다 직관적으로 확인할 수 있습니다.

Pandas+Pyecharts 병원 약품 판매 데이터 시각화

3.6 약명 워드 클라우드

Pandas+Pyecharts 병원 약품 판매 데이터 시각화


Pandas+Pyecharts 병원 약품 판매 데이터 시각화

공간 때문에 일부 코드가 완전히 표시되지 않습니다. 필요한 경우 아래에서 온라인으로 실행할 수도 있습니다(모든 코드 + 데이터 파일 포함) : https://www.heywhale.com/mw/project/61b83bd9c63c620017c629bc

위 내용은 Pandas+Pyecharts 병원 약품 판매 데이터 시각화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Python当打之年에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제