查看原文
其他

YelpDaset: 酒店管理类数据集10+G

大邓 大邓和他的Python 2022-07-09


在昨天发的  综述:文本分析在市场营销研究中的应用  里提到了yelp数据集,官网显示"Yelp数据集是我们用于个人,教育和学术目的的业务,评论和用户数据的子集。以JSON文件形式提供,可用于在学习如何制作移动应用程序的同时,向学生介绍数据库,学习NLP或提供示例生产数据。"

yelp官网显示,这个数据集亮点如下:

  • 668+w条评论

  • 19+w个商业机构

  • 20w张图片

  • 10个都市区域

  • 字段包括:营业时间、是否泊车、可用性和环境

在kaggle上也能看到使用这个数据集的案例,说不定有你需要的分析方法。

我已经从yelp官网下载了数据

参照kaggle的很多例子,咱们也在自己电脑上跑跑简单的分析

business数据读取

kaggle中的数据是csv文件,咱这里是json,略有不同,但读取都可以用pandas读取

  1. import pandas as pd


  2. #一开始用注释掉的代码,有bug,经过百度找到lines=True解决方案

  3. #business = pd.read_json('yelp_dataset/business.json')

  4. business = pd.read_json('yelp_dataset/business.json', lines=True)

  5. business.head()

评分分布

  1. import seaborn as sns

  2. sns.color_palette()

  1. [(0.12156862745098039, 0.4666666666666667, 0.7058823529411765),

  2. (1.0, 0.4980392156862745, 0.054901960784313725),

  3. (0.17254901960784313, 0.6274509803921569, 0.17254901960784313),

  4. (0.8392156862745098, 0.15294117647058825, 0.1568627450980392),

  5. (0.5803921568627451, 0.403921568627451, 0.7411764705882353),

  6. (0.5490196078431373, 0.33725490196078434, 0.29411764705882354),

  7. (0.8901960784313725, 0.4666666666666667, 0.7607843137254902),

  8. (0.4980392156862745, 0.4980392156862745, 0.4980392156862745),

  9. (0.7372549019607844, 0.7411764705882353, 0.13333333333333333),

  10. (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)]

  1. import matplotlib.pyplot as plt

  2. import seaborn as sns


  3. colors = sns.color_palette()

  4. rating = business['stars'].value_counts()

  5. rating.sort_index(inplace=True)

  6. rating.plot(kind='bar',

  7. figsize=(10, 5),

  8. color=colors[:9],

  9. rot=0) #字体倾斜角度

  10. plt.title('Rating Distribution of Yelp',fontweight='bold')

  11. plt.show()

行业统计

查看行业店家数量分布

  1. import numpy as np


  2. business['categories'] = business['categories'].apply(lambda x: x if x else ' ')

  3. category_str = ','.join(business['categories'])

  4. category_list = category_str.split(',')

  5. category_df = pd.DataFrame(category_list, columns=['category'])

  6. top15_category = category_df['category'].value_counts()[:15]

  7. top15_category

  8. top15_category.plot(kind='bar',

  9. color=colors[:20],

  10. figsize=(20, 10),

  11. rot=30,

  12. fontsize=20)

  13. plt.title('Top 20 Category in Yelp',

  14. fontsize=25,

  15. fontweight='bold')

  16. plt.show()

城市分布

显示yelp中Top20城

  1. citys = business['city'].value_counts()[:20]

  2. citys.sort_values(ascending=True, inplace=True)#降序,原地修改原始数据

  3. citys.plot(kind='barh', #水平条形图

  4. figsize=(10, 15),

  5. fontsize=20,

  6. color=colors[:20])

  7. plt.title('Top 20 city in the Yelp',

  8. fontsize=20,

  9. fontweight='bold')

  10. plt.show()




近期文章





综述:文本分析在市场营销研究中的应用

Lazy Prices公司年报内容变动碰上股价偷懒

文本大数据分析在经济学和金融学中的应用:一个文献综述

用statsmodels库做计量分析

使用pandas做数据可视化

如何用pandsa批量采集网页表格数据?

NRC词语情绪词典和词语色彩词典

Loughran&McDonald金融文本情感分析库

股评师分析报告文本情感分析预测股价

使用分析师报告中含有的情感信息预测上市公司股价变动

【公开视频课】Python语法快速入门

【公开视频课】Python爬虫快速入门

一行pandas代码生成哑变量

使用Python读取图片中的文本数据

代码不到40行的超燃动态排序图



jupyter notebook代码获取方式,公众号后台回复关键词“20200103” 




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存