python营业数据分析_基于pandas python的美团某商家的评论销售(数据分析)

数据初步的分析

本文是该系列的第一篇 数据清洗 数据初步的统计

from pyecharts import Bar,Pie

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import time

df=pd.read_excel("all_data_meituan.xlsx")

df.head(2)

anonymous

avgPrice

comment

commentTime

dealEndtime

did

menu

picUrls

quality

readCnt

replyCnt

reviewId

star

userId

userLevel

userName

userUrl

zanCnt

0

False

73

还行吧,建议不要排队那个烤鸭和羊肉串,因为烤肉时间本来就不够,排那个要半小时,然后再回来吃烤...

1525875708515

1.530338e+09

44328533

单人午晚餐

[{'id': -1445845615, 'url': 'http://p0.meituan...

True

25434

0

1674208634

40

291754497

1

q哈哈哈qq

https://img.meituan.net/avatar/92de6ba9a330efe...

2

1

False

73

去过好几次了 东西还是老样子 没增添什么新花样 环境倒是挺不错 离我们这也挺近 味道还可以 ...

1527853291658

1.530338e+09

44328241

2人午晚餐

[{'id': -1429563625, 'url': 'http://p0.meituan...

False

7293

0

1693519286

40

829297130

2

love勇往直前

https://img.meituan.net/avatar/095e2339acd2e50...

0

df['avgPrice'].value_counts()

# 同一家店的均价应该为同一个数值,所以这列数据没多大的意义

73 17400

Name: avgPrice, dtype: int64

df['anonymous'].value_counts()

# 匿名评价与实名评价的比例大致在5:1左右

False 14402

True 2998

Name: anonymous, dtype: int64

def convertTime(x):

y=time.localtime(x/1000)

z=time.strftime("%Y-%m-%d %H:%M:%S",y)

return z

df["commentTime"]=df["commentTime"].apply(convertTime)

df["commentTime"].head()

0 2018-05-09 22:21:48

1 2018-06-01 19:41:31

2 2018-04-04 11:52:23

3 2018-05-01 17:12:22

4 2018-05-17 16:48:04

Name: commentTime, dtype: object

# 在excel可以用筛选器直接看到这列中的数据含有缺失值,或者在拿到数据的时候,使用df.info() 查看每列的数据信息情况

df['dealEndtime'].isna().value_counts()

# 这列数据中含有177个缺失值,其余完整

False 17223

True 177

Name: dealEndtime, dtype: int64

df['commentTime']=pd.to_datetime(df['commentTime'])

df1 = df.set_index('commentTime')

df1.resample('D').size().sort_values(ascending=False).head(100)

df1.resample('M').size().head(1000)

commentTime

2017-08-31 7

2017-09-30 4

2017-10-31 53

2017-11-30 359

2017-12-31 2466

2018-01-31 4169

2018-02-28 2759

2018-03-31 2490

2018-04-30 2754

2018-05-31 2199

2018-06-30 140

Freq: M, dtype: int64

# 处理数据前需要先处理缺失值

# 订单结束时间清洗

df['dealEndtime'].fillna(method='ffill').apply(lambda x:time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(x))).head()

0 2018-06-30 14:00:00

1 2018-06-30 14:00:00

2 2018-06-30 14:00:00

3 2018-06-30 14:00:00

4 2018-06-30 14:00:00

Name: dealEndtime, dtype: object

df['menu'].dropna().astype('category').value_counts()

2人午晚餐 7640

单人午晚餐 3920

学生专享午晚自助 2638

4人午/晚自助 1581

单人下午自助烤肉 639

6人午/晚自助 507

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 209

单人午/晚自助 67

周一至周五自助烤肉,免费WiFi 22

Name: menu, dtype: int64

df['readCnt'].corr(df['star'])

# 评论阅读书与客户评价分数高低的相关性

0.05909293203205019

df[(df["menu"]=="2人午晚餐")]['star'].value_counts()

40 2704

50 2072

30 2002

20 533

10 329

Name: star, dtype: int64

df[(df["menu"]=="单人午晚餐")]['star'].value_counts()

30 1215

40 1208

50 1093

20 298

10 106

Name: star, dtype: int64

# 学生专享午晚自助

df[(df["menu"]=="学生专享午晚自助")]['star'].value_counts()

40 954

50 863

30 529

20 191

10 101

Name: star, dtype: int64

df[(df["menu"]=="4人午/晚自助")]['star'].value_counts()

50 536

30 432

40 414

10 131

20 68

Name: star, dtype: int64

df[(df["menu"]=="单人下午自助烤肉")]['star'].value_counts()

30 208

50 169

40 144

10 98

20 20

Name: star, dtype: int64

df[(df["menu"]=="6人午/晚自助")]['star'].value_counts()

50 245

40 142

30 112

10 8

Name: star, dtype: int64

#周一至周五自助烤肉/周六日及节假日自助烤肉2选1

df[(df["menu"]=="周一至周五自助烤肉/周六日及节假日自助烤肉2选1")]['star'].value_counts()

50 87

40 66

30 46

20 10

Name: star, dtype: int64

df[(df["menu"]=="单人午/晚自助")]['star'].value_counts()

50 30

40 27

30 10

Name: star, dtype: int64

df[(df["menu"]=="周一至周五自助烤肉,免费WiFi")]['star'].value_counts().reindex(range(10,51,10)).fillna(0)

10 0.0

20 0.0

30 0.0

40 0.0

50 22.0

Name: star, dtype: float64

# df.groupby(['menu','star']).size().to_excel("all_menu_star.xls")

df.groupby(['menu','star']).size()

menu star

2人午晚餐 10 329

20 533

30 2002

40 2704

50 2072

4人午/晚自助 10 131

20 68

30 432

40 414

50 536

6人午/晚自助 10 8

30 112

40 142

50 245

单人下午自助烤肉 10 98

20 20

30 208

40 144

50 169

单人午/晚自助 30 10

40 27

50 30

单人午晚餐 10 106

20 298

30 1215

40 1208

50 1093

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 20 10

30 46

40 66

50 87

周一至周五自助烤肉,免费WiFi 50 22

学生专享午晚自助 10 101

20 191

30 529

40 954

50 863

dtype: int64

df.groupby(['star','menu',]).size()

star menu

10 2人午晚餐 329

4人午/晚自助 131

6人午/晚自助 8

单人下午自助烤肉 98

单人午晚餐 106

学生专享午晚自助 101

20 2人午晚餐 533

4人午/晚自助 68

单人下午自助烤肉 20

单人午晚餐 298

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 10

学生专享午晚自助 191

30 2人午晚餐 2002

4人午/晚自助 432

6人午/晚自助 112

单人下午自助烤肉 208

单人午/晚自助 10

单人午晚餐 1215

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 46

学生专享午晚自助 529

40 2人午晚餐 2704

4人午/晚自助 414

6人午/晚自助 142

单人下午自助烤肉 144

单人午/晚自助 27

单人午晚餐 1208

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 66

学生专享午晚自助 954

50 2人午晚餐 2072

4人午/晚自助 536

6人午/晚自助 245

单人下午自助烤肉 169

单人午/晚自助 30

单人午晚餐 1093

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 87

周一至周五自助烤肉,免费WiFi 22

学生专享午晚自助 863

dtype: int64

df.groupby(['star','menu',]).size()[50]

menu

2人午晚餐 2072

4人午/晚自助 536

6人午/晚自助 245

单人下午自助烤肉 169

单人午/晚自助 30

单人午晚餐 1093

周一至周五自助烤肉/周六日及节假日自助烤肉2选1 87

周一至周五自助烤肉,免费WiFi 22

学生专享午晚自助 863

dtype: int64

# userId

# 这家店铺有好多回头客,万万没想到

df[df['userId']!=0]['userId'].value_counts().head(40)

266045270 64

152775497 60

80372612 60

129840082 60

336387962 60

34216474 60

617772217 60

82682689 54

287219504 49

884729389 45

868838851 40

409054441 40

86939815 40

776086712 40

48597225 40

111808598 40

240199490 40

83068123 40

298504911 40

1042639014 40

912472277 40

98198819 40

1494880345 40

152930400 40

139581136 40

404183587 40

714781743 40

292809386 40

18111538 40

1097689674 40

300905323 40

232697160 40

141718492 40

879430090 40

696143486 40

13257519 40

983797146 40

911947863 40

993057629 40

494215297 40

Name: userId, dtype: int64

df[df['userName']!="匿名用户"]['userName'].value_counts().head(40)

xuruiss1026 64

vTF610712604 60

siisgood 60

么么哒我是你聪叔 60

黑发飘呀飘 60

始于初见的你 60

jIx325233926 60

yumengkou 54

Daaaav 49

梁子7543 45

SzX539077433 40

小虎儿2001 40

清晨cxh98 40

安然~轩 40

hiP499857883 40

滨海之恋33 40

小匴盤 40

oev575457132 40

Mqg827794346 40

onr243685128 40

TBKLZJ 40

nXu534267448 40

aYH197128794 40

天蛟Wing 40

热带鱼7697 40

18669978087 40

ree177064067 40

Bbl141819414 40

西山仙踪 40

张齐齐123 40

yue国光123 40

joF498901567 40

qDK538313823 40

Nqr695642404 40

pHO437742850 40

FQe845913598 40

leeman666888 40

kingd123 40

榴莲馅月饼 40

Mvo148723747 40

Name: userName, dtype: int64

df.groupby(['star','userLevel',]).size()

star userLevel

10 0 187

1 139

2 164

3 193

4 80

5 10

20 0 223

1 88

2 304

3 294

4 207

5 21

30 0 1147

1 405

2 1057

3 1230

4 570

5 165

6 20

40 0 870

1 432

2 1360

3 1751

4 1026

5 261

6 25

50 0 698

1 386

2 1167

3 1670

4 802

5 318

6 130

dtype: int64

df.groupby(['userLevel','star']).size()

userLevel star

0 10 187

20 223

30 1147

40 870

50 698

1 10 139

20 88

30 405

40 432

50 386

2 10 164

20 304

30 1057

40 1360

50 1167

3 10 193

20 294

30 1230

40 1751

50 1670

4 10 80

20 207

30 570

40 1026

50 802

5 10 10

20 21

30 165

40 261

50 318

6 30 20

40 25

50 130

dtype: int64

df['zanCnt'].value_counts()

0 16422

1 652

2 143

3 119

8 20

6 20

4 20

5 4

Name: zanCnt, dtype: int64

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们可以采用Python中的pandas和matplotlib库进行营业数据分析。下面我介绍一下具体的实现步骤。 首先,我们需要准备一份销售数据的CSV文件,例如以下示例数据: ``` 日期,商品名称,销售额,销售量 2021-01-01,商品A,1000,10 2021-01-01,商品B,1500,15 2021-01-02,商品A,1200,12 2021-01-02,商品B,1800,18 2021-01-03,商品A,1300,13 2021-01-03,商品B,1900,19 ``` 然后,我们可以使用pandas库将CSV文件读取到数据框中,并进行一些数据清洗和处理。代码如下: ```python import pandas as pd # 读取CSV文件到数据框 df = pd.read_csv('sales_data.csv') # 将日期列转换为datetime类型 df['日期'] = pd.to_datetime(df['日期']) # 添加月份列 df['月份'] = df['日期'].dt.month # 添加销售额/销售量单价列 df['销售额单价'] = df['销售额'] / df['销售量'] df['销售量单价'] = df['销售量'] / df['销售额'] ``` 接着,我们可以使用pandas的聚合函数对数据进行汇总和统计。例如,我们可以按月份汇总销售额和销售量,代码如下: ```python # 按月份汇总销售额和销售量 df_monthly = df.groupby('月份').sum()[['销售额', '销售量']] ``` 然后,我们可以使用matplotlib库绘制图表,例如绘制销售额和销售量的折线图,代码如下: ```python import matplotlib.pyplot as plt # 绘制销售额和销售量的折线图 plt.plot(df_monthly.index, df_monthly['销售额'], label='销售额') plt.plot(df_monthly.index, df_monthly['销售量'], label='销售量') # 添加图表标题和标签 plt.title('销售额和销售量月度趋势') plt.xlabel('月份') plt.ylabel('金额/数量') plt.legend() # 显示图表 plt.show() ``` 最后,我们可以通过对数据框进行筛选和排序,来查找一些有用的信息。例如,我们可以查找销售额单价最高的商品,代码如下: ```python # 查找销售额单价最高的商品 df_top = df.sort_values('销售额单价', ascending=False).head(1) # 输出商品名称和销售额单价 print(f"销售额单价最高的商品是{df_top.iloc[0]['商品名称']}, 单价为{df_top.iloc[0]['销售额单价']:.2f}") ``` 以上就是一个简单的营业数据分析案例,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值