Py学习  »  Python

Python数据科学实践 | 简单读写数据

狗熊会 • 4 年前 • 479 次点击  

关注我,让我成为你的专属小太阳吧


前言:在前5期推文中我们讲述了如何搭建基于Python的数据科学环境。现万事俱备,只欠代码!众所周知,狗熊会中政委带领大家完成过很多关于火锅吃货的案例,政委可谓是狗熊会的“火锅英雄”。本系列推文的众多部分仍然以火锅团购数据为分析案例,来阐述如何利用Python进行数据科学实践。那么,现在就请大家开始基于数据科学实践的火锅团购分析之旅。本次推文是由程茜与政委共同推出。


“火锅团购数据”简介


提起冬天,大家会想起什么?是银装素裹的景色,亲友相聚的团圆?还是春节假期难得的闲暇?对于吃货如我来说,冬天是最好的季节。冬天里炖的酥烂的羊肉汤,捧在手里香甜诱人的烤红薯,炒栗子,浇着爽辣汤汁的烤鱼等等。冬天吃得多还有一个绝妙的理由:积蓄热量,抵御寒冷(义!正!言!辞!)。冬天里,最不能落下的美食之一,就是本章(也是后续多个章节)要介绍的主题——火锅。火锅,作为一种历史悠久、老少皆宜的美食,全国盛行。冬天和三五好友相约打边炉,才是初冬应有的味道。  

 


如果你是吃货,你是否调研过火锅有多少种呢?你最喜欢吃的是哪一种火锅呢?是以麻、辣为主的川系火锅?还是鲜美清淡的粤系火锅?是传统京味铜炉火锅?又或者是汤汁浓郁的滇味腊排骨火锅?

火锅不仅美味,还带来了巨大的产业。根据《2018中国火锅产业餐饮大数据研究报告》显示, 我国火锅餐饮市场从2014年至今,年增长率均在10%以上,这就导致越来越多的人投身火锅行业。从数据来看,14年至今,全国新增的火锅店面仍然多于关闭的火锅店面,火锅行业仍然在扩张之中。这一现象的直接结果就是本行业出于完全竞争的状态下,各个店家竞争十分激烈。

本文收集了截止2018年8月1日某线上平台在线的西安与郑州的火锅团购产品的销售数据。基于该数据,本书将以火锅行业面对的真实业务问题,例如研究影响火锅团购销量的因素;研究如何为火锅商户设计团购套餐;研究新开火锅店的选址。通过这些真实的业务问题,从而介绍如何使用Python进行数据科学的实践。而本章主要介绍Python语言的基础。

数据分析第一步,干什么?肯定是“读数据”。如果数据都读不进来,也就无法知道数据到底是什么样子,怎么能去分析数据呢。所以,咱们先把火锅团购数据数据读进来,看看火锅团购数据到底都包含了哪些信息。


读写数据


文件管理
01


在数据读入之前,工作路径的设置尤为重要,就像我要想吃火锅,要知道地址一样。这个叫“Python”的人,要去找到“数据”这个火锅,这是后面我们能做一系列研究的基础。所以,先来介绍设置工作路径的方法。


import os
os.getcwd() ## 查看现在的工作目录
os.chdir('XXXXX'##此处请将路径换成自己电脑中数据的存放位置
os.getcwd() ## 重新查看

例1-1


这里os是python的标准库,import可理解为加载,这样就加载了os库。os.getcwd()查看现在的工作目录。其结果会显示当前的工作目录。不同的数据科学项目应该都存储于不同目录,所以这时候就需要我们根据数据文件的位置来设置自己的工作目录。命令os.chdir就是将工作目录更改成自己数据存放的位置的函数。最后当你设置完以后最好再利用os.getcwd()检查一下路径是否设置成功即可。


读入火锅团购数据
02


 围绕着“火锅团购”会有来自团购、评论和店铺这三方面的数据。因此本书会主要使用三个后缀是.xlsx的文件。首先,comment_nm.xlsx这个数据集里记录了团购活动的评论数据。它包含用户对该活动评论的时间、内容、评分以及消费的门店等信息;其次,coupon_nm.xlsx这个数据集里记录了团购活动内容的数据。从这个数据集中可以了解到每个团购活动的举办的地址、店铺、团购内容、价位、团购的购买人数以及评价人数等信息;最后,shops_nm.xlsx这个数据集中记录了店铺的数据。从这个数据集可以更加详细的了解到每家门店的所在城市、具体地址、大众对它的评分、菜品以及该店铺的人均消费等数据。这三张数据表的信息整合后共同记录了每个团购活动的团购信息、大众对该活动的评价以及该团购活动举行的店铺数据。

数据介绍清楚了以后,接下来面临的问题是如何读入这些xlsx、csv等格式的数据呢。这里大家先“不求甚解”,记住会用一种叫做Pandas的Python模块中的函数读取。而对于Pandas的具体内容会在后面的章节有详细讲解。

import pandas as pd  #导入Pandas模块
coupon=pd.read_excel("https://github.com/xiangyuchang/xiangyuchang.github.io/blob/master/BearData/coupon_nm.xlsx?raw=true"#读入数据
coupon.head() #查看数据的前5行

例2-1

图2-1

从这份数据可以观察到每个团购举行的店铺,内容介绍,购买人数,评价人数,价格,地址等信息。如果coupo是csv文件,也可很方便的读入。注意这里的编码方式是'gbk'。

import pandas as pd
coupon_nm=pd.read_csv("https://github.com/xiangyuchang/xiangyuchang.github.io/blob/master/BearData/coupon_nm.csv?raw=true",encoding='gbk')
coupon_nm.head()

例2-2

图2-2

虽然火锅数据是读进来了,但是这些都是后缀是xlsx或者csv的数据文件。这时候有的读者会说其他存储类型的数据如何读取呢?下面来介绍Python中对于txt文件的读写,常常用的内置函数。


利用open函数读写文件
03


Open是Python中的内置函数,其正确的使用逻辑是:打开文件;读取文件内容;关闭文件。注意:文件使用完毕之后一般需要关闭。因为文件对象会占用系统资源,并且操作系统在同一时间内能够打开的文件数量有限。Open函数使用的基本语法为: 

 f = open(, )

其中,打开模式用于控制使用何种方式打开文件。Open函数提供了7种基本的打开模式,如下表。

表 3-1

下面利用Open函数新建一个名为food的txt文件,然后写入所需要的内容。 

# 打开一个文件
f = open("food.txt""w")
# 在文件中写入两行话
f.write("西安火锅真棒。\n我喜欢西安的火锅!!\n")
# 关闭打开的文件
f.close()

例3-1

这样就会在工作目录下发现有一个food.txt文件,并且利用了f.write函数在新建的food.txt文件中写入了两行话,分别是“西安火锅真棒”,“我喜欢西安的火锅!!”。如图3-1:

图3-1

最后利用f.close把文件关闭。在这个过程中,读者需要注意如果food文件在目录中存在了,这个时候如果我们还以“w”的模式打开,那么原来文件中的内容会被清空。Python还有很多文件读取的方法,这里就先不一一赘述了。等到需要用的时候将会仔细讲解。


作业:当然是赶紧把运行代码把数据下载下来,读入到自己的Jupyter Notebook中熟悉一下火锅团购数据(鼓励去吃一顿)。后面的所有讲解都需要用到这个数据哦。



往期精彩回顾
初步搭建数据科学工作环境

Conda的使用

Spyder入门

Jupyter入门

Markdown


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35791
 
479 次点击