对kaggle中的hotel booking demand项目的python学习笔记

这篇博客详细记录了对Kaggle上的hotel booking demand项目进行数据分析的过程,包括使用pandas和numpy读取数据,数据清洗(处理缺失值、删除无用行),探索性分析(顾客来源、价格变化、业务高峰期、停留时长、预订细分市场),并使用matplotlib和plotly进行可视化展示,如饼图、柱状图和箱型图。
摘要由CSDN通过智能技术生成

数据读入

  1. 用pandas读入
    将读取的数据放在data中
    data = pd.read_csv(‘文件路径或文件名’, encoding=‘gbk’)
    当为文件名时需要放在同一个文件夹下
    encoding=‘gbk’,为了识别中文
    data.head()可以查看输入的前几行数据
  2. 用numpy读入二维txt文件
    data = np.loadtxt(‘文件路径或文件名’, dtype=np.int, delimiter=None)
    当为文件名时需要放在同一个文件夹下
    dtype为数据类型
    delimiter=None数据分隔符为空格

数据清洗与准备

  1. data为pandas类型的数据
    data.isnull().sum()可以获得缺失值的数量
  2. 用fillna()填充缺失值
    ① 使用一个常数代替缺失值
    data_clean= data.fillna(0)
    fillna返回的是一个新的对象,新对象是data_clean
    ②用字典为不同列设定不同的缺失值
    nan_replacements = {“列1”: 0,“列2”: 0,“列3”:0, “列4”: 0, “列5”: 0}
    data.fillna(nan_replacements, inplace=True)
    #inplace=True是为修改已经存在的data对象
    #将列1中的空值替换为0
  3. 替换某列数据的某些值
    data[“需要被处理的列”].replace(“需要替换的值”, “替换后的值”, inplace=True)
    当需要对已经存在的对象进行修改时,添加 inplace=True
  4. 将某些无用数据行删除
    garbage_data=list(data.loc[无用行].index) #取这些行的索引放在列表里
    data.drop(data.index[garbage_data]) #删除无用数据行
  5. 在数据清洗完之后可以用data.shape查看有多少行多少列

顾客来自哪里?

1.value_counts()函数的用法
country_data=pd.DataFrame(data_clean[‘country’].value_counts())
在这里插入图片描述
没有选择行,所以有178行
country_data=pd.DataFrame(data_clean.loc[data_clean[‘is_canceled’]==0][‘country’].value_counts())
在这里插入图片描述
选择了行,所以只有166行
生成的行标签为国家名,列名是country
2. 用rename()函数为列重命名
country_data.rename(columns={“country”:“numbers of country”}, inplace=True)
3. sum()可以对列求和
total_country=country_data[‘numbers of country’].sum()
4. round( 算术式,2)
对算术式保留两位小数。
5. 用plotly.express绘制饼图

import plotly.express as px
fig = px.pie(country_data,
             values="numbers of country",
             names="country",
             title="Home country of guests",
             template="seaborn")
fig.update_traces(textposition="inside", textinfo="value+percent+label")
fig.show()

在这里插入图片描述
6. 用plotly.express绘制地图

guest_map = px.choropleth(country_data,
                    locations=country_data.index,
                    color=country_data["%"],
                    hover_name=country_data.index,
                    color_continuous_scale=px.colors.sequential.Plasma,
                    title="Home country of guests")
guest_map.show()

在这里插入图片描述

一年中每晚的价格变化

  1. sort_values()使用
    先将.sort_values()中的参数排序,其余列跟随着.sort_values()中的参数变化
  2. 用matplotlib画箱型图
import matplotlib as plt
plt.figure(figsize=(12, 8))
sns.boxplot(x="reserved_room_type",
            y="adr_p",
            hue="hotel",
            data=guest_price,
            hue_order=["City Hotel", "Resort Hotel"],
            fliersize=0)
plt.title("Price of room types per night and person", fontsize=16)
plt.xlabel("Room type", fontsize=16)
plt.ylabel
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值