柱状图呈现各省出租率 出租率是反映住宿场所经营状况的一项重要指标,它是已出租的 客房数与住宿场所可以提供租用的房间总数的百分比。住宿场所出租 率的情况可以在一定程度上反应出该住宿场所的整体运营的情况,

发布于:2022-12-16 ⋅ 阅读:(263) ⋅ 点赞:(0)

import pandas as pd
from sqlalchemy import create_engine
import matplotlib.pyplot as plt

engine = create_engine('mysql+mysqlconnector://root:123456@127.0.0.1:3306/radar_lines_copy')
sql = 'select * from  radar_lines_copy'
datas = pd.read_sql(sql, engine)

print('===***原数据条数为***===')
print(datas.shape[0])

for i in datas['accommodation_num']:
    try:
        i = float(i)
    except:
        datas = datas[datas['accommodation_num'] != i]
print('===***异常处理后据条数为***===')
print(datas.shape[0])

datas["lease_rate"] = datas["lease_rate"].astype(float)
datas['accommodation_num'] = datas['accommodation_num'].astype(float)
datas = datas.drop_duplicates()
print('===***删除重复值后据条数为***===')
print(datas.shape[0])

datas.dropna(subset=['province'], how='all', axis=0, inplace=True)
print('===***删除省份为空的数据后据条数为***===')
print(datas.shape[0])

city_isnull = datas.loc[datas['lease_rate'].isnull()]
province_lst = []
for t in city_isnull['province']:
    province_lst.append(t)
province_lst = pd.unique(province_lst)
print(province_lst)

menan_lst = 0.00
b = []
for i in province_lst:
    for j in lst:
        if i == j['province'].values[0]:
            menan_lst = j['lease_rate'].sample(50).mean()
            datas.loc[(datas['province'] == i) & (datas['lease_rate'].isnull())] = menan_lst

province = []
c = []
f = []
for j in lst:
    province.append(j['province'].values[0])
    mean_rate = datas.loc[datas['province'] == j['province'].values[0]]['lease_rate'].mean()
    sum = datas.loc[datas['province'] == j['province'].values[0]]['accommodation_num'].sum()
    c.append(mean_rate)
    f.append(sum)
    print(sum)
dict = dict(zip(province, c))

e = sorted(dict.items(), key=lambda x: -x[1])[:10]
print('===***有效数据条数为***===')
print(datas.shape[0])

x = []
y = []
for i, j in e:
    x.append(i)
    y.append(j)
for (j, p), i in zip(e, f):
    p = "%.2f" % p
    print("省份:{}=住宿场所数为{}个=出租率为:{}".format(j, i, p))

plt.rcParams['font.sans-serif'] = ['FangSong']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(4, 3))
plt.xlabel('省份')
plt.ylabel('出租率')
plt.bar(x, y)
plt.show()

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到