数据分析案例-四川省旅游景点数据分析

简介: 数据分析案例-四川省旅游景点数据分析

数据集介绍

数据为四川省的各旅游景点信息,特征有景点名称、星级、城市、票价、销量、热度6个维度,部分数据如下:

加载数据

首先要导入本次项目用到的第三方包和数据

import pandas as pd
from pyecharts.charts import Pie,Bar,Map,Funnel
from pyecharts import options as  opts 
from pyecharts.globals import ThemeType
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False
import warnings
warnings.filterwarnings('ignore')
data = pd.read_csv('sichuan.csv')
data.head()



数据清洗

缺失值处理


# 查看缺失值
data.isnull().sum()


我们发现数据没有缺失值,不需要进行缺失值处理

如有缺失值,调用下面代码进行删除处理即可

# 删除缺失值
data.dropna(inplace=True)

重复值处理

查看数据是否有重复值

# 查看数据是否有重复值  结果为True则说明存在重复值,反正则没有
any(data.duplicated())

结果为True说明存在重复值,需要进行处理

# 删除重复值
data.drop_duplicates(inplace=True)

异常值处理

看看票价是否存在异常值


# 查看票价是否存在异常值
plt.boxplot(data['票价'])
plt.show()

我们发现票价存在明显的异常值,这里我们需要剔除出票价大于300的

# 对票价中的异常值进行处理,筛选出票价大于300的异常数据
data = data[data['票价']<300]
plt.boxplot(data['票价'])
plt.show()

数据预处理

# 根据各景区的票价和销量得出新的总销售额一列数据
data['总销售额'] = data['票价'] * data['销量']
data.head()


数据可视化

# 四川各星级景区的数量
df1 = data['星级'].value_counts()
plt.figure(figsize=(10,6))
plt.bar(x=df1.index,height=df1.values)
plt.xlabel('星级',fontsize=12)
plt.ylabel('数量',fontsize=12)
plt.title('四川各星级景区的数量',fontsize=12)
plt.show()

# 四川各星级景点数占比
result_list = [(i,j) for i,j in zip(df1.index.to_list(),df1.values.tolist())]
a = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK))
a.add(series_name='星级',
        data_pair=result_list,
        radius='70%',
        )
a.set_global_opts(title_opts=opts.TitleOpts(title="四川各星级景点数占比",
                    pos_top=50))
a.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)'))
a.render(path='饼图.html')
a.render_notebook()



# 分析票价、热度和销量之间的关系
plt.figure(figsize=(10,6))
plt.subplot(1,2,1)
plt.scatter(x=data['票价'],y=data['销量'])
plt.title('票价与销量的关系',fontsize=14)
plt.subplot(1,2,2)
plt.scatter(x=data['热度'],y=data['销量'])
plt.title('热度与销量的关系',fontsize=14)
plt.show()

# 个地区旅游景点的热力地图
df2 = data['城市'].value_counts()
city_data = [[x+'市',y] if x[-3:] != '自治州' else [x,y] for x,y in zip(df2.index.to_list(),df2.values.tolist())]
map = Map()
map.add('地区',city_data,
    maptype='四川',
    is_map_symbol_show=False,)
map.set_global_opts(
    title_opts=opts.TitleOpts('四川省'),
    visualmap_opts=opts.VisualMapOpts()
)
map.render(path='热力地图.html')
map.render_notebook()


# 漏斗图
funnel = Funnel()
funnel.add('',[(i,j) for i,j in zip(df2.index.to_list(),df2.values.tolist())],
label_opts=opts.LabelOpts(position='inside'))
funnel.set_global_opts(title_opts=opts.TitleOpts(title='漏斗图',pos_top=50))
funnel.render(path='漏斗图.html')
funnel.render_notebook()



# 分析各个特征之间的相关系数
fig = plt.figure(figsize=(10,10))
sns.heatmap(data.corr(),vmax=1,annot=True,linewidths=0.5,cbar=False,cmap='YlGnBu',annot_kws={'fontsize':25})
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.title('各个特征之间的相关系数',fontsize=20)
plt.show()


# 景区名称词云图
from pyecharts.charts import WordCloud
import collections
result_list = []
for i in data['景点名称'].values:
    word_list = str(i).split('/')
    for j in word_list:
        result_list.append(j)
result_list
word_counts = collections.Counter(result_list)
word_counts_top = word_counts.most_common(100)
wc = WordCloud()
wc.add('',word_counts_top)
wc.render(path='词云图.html')
wc.render_notebook()


# 总销售额最高的前五名景区
df3 = data.sort_values('总销售额',ascending=False)[['景点名称','总销售额']].head()
plt.figure(figsize=(10,8))
plt.barh(y=df3['景点名称'].values,width=df3['总销售额'])
plt.title('总销售额最高的前五名景区',fontsize=14)
plt.show()

# 热度最高的前十名景区
df3 = data.sort_values(by='热度',ascending=False)[['景点名称','热度']].head(10)
plt.figure(figsize=(20,10))
sns.barplot(x='景点名称',y='热度',data=df3)
plt.xticks(fontsize=14)
plt.xlabel('景点名称',fontsize=14)
plt.ylabel('热度',fontsize=14)
plt.title('热度最高的前十名景区',fontsize=14)
plt.show()


# 销量前十的景点
df4 = data.sort_values(by='销量',ascending=False)[['景点名称','销量']].head(10)
a1 = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
a1.add_xaxis(df4['景点名称'].values.tolist())
a1.add_yaxis('销量',df4['销量'].values.tolist())
a1.reversal_axis()
a1.set_series_opts(label_opts=opts.LabelOpts(position="right"))
a1.set_global_opts(title_opts=opts.TitleOpts(title="销量前十的景点"))
a1.render(path='销量前十的景点.html')
a1.render_notebook()


data.groupby('城市').mean()[['票价','销量']].plot(kind='bar',figsize=(15,8),title='各个地区的平均票价和平均销量',fontsize=14)

以上就是四川省旅游景点数据分析,希望对学习数据分析的你有所帮助


目录
相关文章
|
2月前
|
数据采集 数据可视化 数据挖掘
数据分析案例-汽车客户信息数据可视化分析
数据分析案例-汽车客户信息数据可视化分析
84 0
|
2月前
|
数据可视化 架构师 数据挖掘
数据分析案例-数据科学相关岗位薪资可视化分析
数据分析案例-数据科学相关岗位薪资可视化分析
51 0
|
2月前
|
SQL 分布式计算 数据可视化
数据分析案例-数据分析师岗位招聘信息可视化
数据分析案例-数据分析师岗位招聘信息可视化
58 0
|
2月前
|
数据可视化 搜索推荐 数据挖掘
数据分析案例-顾客购物数据可视化分析
数据分析案例-顾客购物数据可视化分析
96 0
|
3天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
3天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
2月前
|
数据可视化 数据挖掘 BI
数据分析案例-某公司员工数据信息可视化
数据分析案例-某公司员工数据信息可视化
50 2
|
2月前
|
数据采集 自然语言处理 数据可视化
数据分析案例-基于snownlp模型的MatePad11产品用户评论情感分析(上)
数据分析案例-基于snownlp模型的MatePad11产品用户评论情感分析
67 0
|
2月前
|
供应链 数据可视化 搜索推荐
数据分析案例-顾客购物数据可视化分析
数据分析案例-顾客购物数据可视化分析
49 1
|
2月前
|
数据可视化 数据挖掘 Python
数据分析案例-航空公司满意度数据可视化
数据分析案例-航空公司满意度数据可视化
52 0