前言

关于亚马逊订单数据的探索!

次项目大家就仅当作学习使用好了

导入库

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode

Python从零基础入门到实战系统教程、源码、视频,想要数据集的同学也可以点这里

数据处理

  • 对时间字段进行处理,转为datetime;
  • 对配送州字段进行处理,原始数据中既有州缩写也有全称,统一为全称呼;

df_c = pd.read_excel('C:/Users/Administrator/Desktop/市场占有率.xls')
df = pd.read_excel('C:/Users/Administrator/Desktop/亚马逊入驻商订单报表.xls', header=1)
df['支付时间'] = pd.to_datetime(df['支付时间'], utc=False)# .dt.strftime('%Y-%m-%d %H:%M:%S')
df['下单时间'] = pd.to_datetime(df['下单时间'], utc=False)# .dt.strftime('%Y-%m-%d %H:%M:%S')
df['最早配送时间'] = pd.to_datetime(df['最早配送时间'], utc=False)
df['最晚配送时间'] = pd.to_datetime(df['最晚配送时间'], utc=False)
df['最早送达时间'] = pd.to_datetime(df['最早送达时间'], utc=False)
df['最晚送达时间'] = pd.to_datetime(df['最晚送达时间'], utc=False)
c_map = dict()
for idx, row in df_c.iterrows():c_map[row['州名简写']] = row['美国州名英文'].replace(u'\xa0', u' ')c_map['SD'] = 'South Dakota'
c_map['NM'] = 'New Mexico'
c_map['SC'] = 'South Carolina'
c_map['NH'] = 'New Hampshire'
c_map['NJ'] = 'New Jersey'def format_state(state):try:c = state.upper().replace('.', '')if c in c_map.keys():return c_map[c]elif c in [x.upper() for x in c_map.values()]:return list(c_map.values())[[x.upper() for x in c_map.values()].index(c)]else:return Noneexcept AttributeError:return Nonedf['配送州'] = df['配送州'].map(format_state)df.head()

各时间段订单量

早上的订单最多,好像和国内用户习惯不太一样呢~

data = df.groupby([df['下单时间'].dt.hour])['订单ID'].count().reset_index()
data_x = ['{}点'.format(int(i)) for i in data['下单时间']]
data_y = data['订单ID'].tolist()area_color_js = """new echarts.graphic.LinearGradient(0, 0, 0, 1,[{offset: 0, color: 'rgba(128, 255, 165)'},{offset: 1, color: 'rgba(1, 191, 236)'}],false)
"""bg_color_js = """new echarts.graphic.LinearGradient(0, 0, 0, 1,[{offset: 0, color: 'rgba(128, 255, 165, 0.2)'},{offset: 1, color: 'rgba(1, 191, 236, 0.2)'}],false)
"""line = Line(init_opts=opts.InitOpts(theme='white', width='1000px', height='500px', bg_color=JsCode(bg_color_js)))
line.add_xaxis(data_x)
line.add_yaxis('',data_y,is_smooth=True,symbol="circle",is_symbol_show=False,linestyle_opts=opts.LineStyleOpts(color="#fff"),areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1),
)line.set_series_opts(opts.LabelOpts(is_show=False))
line.set_global_opts(xaxis_opts=opts.AxisOpts(boundary_gap=False),yaxis_opts=opts.AxisOpts(axisline_opts=opts.AxisLineOpts(is_show=False),axistick_opts=opts.AxisTickOpts(is_show=False),splitline_opts=opts.SplitLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(color='#E0E6F1'))),tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', axis_pointer_type='cross'),title_opts=opts.TitleOpts(title="全天各时间段订单数", pos_left='center')
)
line.render_notebook()

周内订单量分布

data = df.groupby([df['下单时间'].dt.weekday_name])['订单ID'].count().reset_index()
cat_day_of_week = pd.api.types.CategoricalDtype(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], ordered=True
)
data['下单时间'] = data['下单时间'].astype(cat_day_of_week)
data = data.sort_values(['下单时间'])
data_x = data['下单时间'].tolist()
data_y = data['订单ID'].tolist()area_color_js = """new echarts.graphic.LinearGradient(0, 0, 0, 1,[{offset: 0, color: 'rgba(128, 255, 165)'},{offset: 1, color: 'rgba(1, 191, 236)'}],false)
"""bg_color_js = """new echarts.graphic.LinearGradient(0, 0, 0, 1,[{offset: 0, color: 'rgba(128, 255, 165, 0.2)'},{offset: 1, color: 'rgba(1, 191, 236, 0.2)'}],false)
"""line = Line(init_opts=opts.InitOpts(theme='white',width='1000px',height='500px',bg_color=JsCode(bg_color_js)))
line.add_xaxis(data_x)
line.add_yaxis('',data_y,is_smooth=True,symbol="circle",is_symbol_show=False,linestyle_opts=opts.LineStyleOpts(color="#fff"),areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1),
)line.set_series_opts(opts.LabelOpts(is_show=False))
line.set_global_opts(xaxis_opts=opts.AxisOpts(boundary_gap=False),yaxis_opts=opts.AxisOpts(is_scale=True,axisline_opts=opts.AxisLineOpts(is_show=False),axistick_opts=opts.AxisTickOpts(is_show=False),splitline_opts=opts.SplitLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(color='#E0E6F1'))
),tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', axis_pointer_type='cross'),title_opts=opts.TitleOpts(title="一周内各天订单数", pos_left='center')
)
line.render_notebook()

美国各州订单

下载美国地图

import requestsGEO_data = requests.get(url="https://echarts.apache.org/examples/data/asset/geo/USA.json").json()area_move = """{Alaska: {              // 把阿拉斯加移到美国主大陆左下方left: -128,top: 25,width: 15},Hawaii: {left: -110,        // 夏威夷top: 25,width: 5},'Puerto Rico': {       // 波多黎各left: -76,top: 26,width: 2}}"""data = df.groupby(['配送州'])['订单ID'].count().reset_index()
data_pair = []
for idx, row in data.iterrows():data_pair.append((row['配送州'], row['订单ID']))
map_chart = Map(init_opts=opts.InitOpts(width='1000px', height='600px'))
map_chart.add_js_funcs("""echarts.registerMap('USA', {}, {});""".format(GEO_data, area_move))
map_chart.add('订单数',data_pair=data_pair,maptype='USA',is_roam=False,# 关闭symbol的显示is_map_symbol_show=False,zoom=1.1,label_opts=opts.LabelOpts(is_show=False),)map_chart.set_global_opts(legend_opts=opts.LegendOpts(is_show=False),title_opts=opts.TitleOpts(title="美国各州订单数分布", pos_left='center'),visualmap_opts=opts.VisualMapOpts(is_show=True,is_piecewise=True,orient='vertical',pos_left='2%',pos_top='65%',range_text=['订单数', ''],pieces=[{'min': 100},{'min': 60,'max': 100},{'min': 30,'max': 60},{'min': 10,'max': 30},{'min': 1,'max': 10}],range_color=["#CCD3D9", "#E6B6C2", "#D4587A", "#DC364C"])
)
map_chart.render_notebook()

商品属性

根据商品名称关键词来判断,93%的商品都是女款

f, m = 0, 0
for i in df['产品名称']:try:if i.upper().__contains__('WOMEN') or i.upper().__contains__('GIRL'):f+=1elif i.upper().__contains__('MEN'):m+=1else:passexcept AttributeError:passf_p = round(f/(f+m)*100)
m_p = round(m/(f+m)*100)
symbols = ['path://M18.2629891,11.7131596 L6.8091608,11.7131596 C1.6685112,11.7131596 0,13.032145 0,18.6237673 L0,34.9928467 C0,38.1719847 4.28388932,38.1719847 4.28388932,34.9928467 L4.65591984,20.0216948 L5.74941883,20.0216948 L5.74941883,61.000787 C5.74941883,65.2508314 11.5891201,65.1268798 11.5891201,61.000787 L11.9611506,37.2137775 L13.1110872,37.2137775 L13.4831177,61.000787 C13.4831177,65.1268798 19.3114787,65.2508314 19.3114787,61.000787 L19.3114787,20.0216948 L20.4162301,20.0216948 L20.7882606,34.9928467 C20.7882606,38.1719847 25.0721499,38.1719847 25.0721499,34.9928467 L25.0721499,18.6237673 C25.0721499,13.032145 23.4038145,11.7131596 18.2629891,11.7131596 M12.5361629,1.11022302e-13 C15.4784742,1.11022302e-13 17.8684539,2.38997966 17.8684539,5.33237894 C17.8684539,8.27469031 15.4784742,10.66467 12.5361629,10.66467 C9.59376358,10.66467 7.20378392,8.27469031 7.20378392,5.33237894 C7.20378392,2.38997966 9.59376358,1.11022302e-13 12.5361629,1.11022302e-13','path://M28.9624207,31.5315864 L24.4142575,16.4793596 C23.5227152,13.8063773 20.8817445,11.7111088 17.0107398,11.7111088 L12.112691,11.7111088 C8.24168636,11.7111088 5.60080331,13.8064652 4.70917331,16.4793596 L0.149791395,31.5315864 C-0.786976655,34.7595013 2.9373074,35.9147532 3.9192135,32.890727 L8.72689855,19.1296485 L9.2799493,19.1296485 C9.2799493,19.1296485 2.95992025,43.7750224 2.70031069,44.6924335 C2.56498417,45.1567684 2.74553639,45.4852068 3.24205501,45.4852068 L8.704461,45.4852068 L8.704461,61.6700801 C8.704461,64.9659872 13.625035,64.9659872 13.625035,61.6700801 L13.625035,45.360657 L15.5097899,45.360657 L15.4984835,61.6700801 C15.4984835,64.9659872 20.4191451,64.9659872 20.4191451,61.6700801 L20.4191451,45.4852068 L25.8814635,45.4852068 C26.3667633,45.4852068 26.5586219,45.1567684 26.4345142,44.6924335 C26.1636859,43.7750224 19.8436568,19.1296485 19.8436568,19.1296485 L20.3966199,19.1296485 L25.2043926,32.890727 C26.1862111,35.9147532 29.9105828,34.7595013 28.9625083,31.5315864 L28.9624207,31.5315864 Z M14.5617154,0 C17.4960397,0 19.8773132,2.3898427 19.8773132,5.33453001 C19.8773132,8.27930527 17.4960397,10.66906 14.5617154,10.66906 C11.6274788,10.66906 9.24611767,8.27930527 9.24611767,5.33453001 C9.24611767,2.3898427 11.6274788,0 14.5617154,0 L14.5617154,0 Z',
]area_color_js = """new echarts.graphic.LinearGradient(0, 1, 0, 1,[{offset: 0, color: 'rgba(128, 255, 165)'},{offset: 1, color: 'rgba(1, 191, 236)'}],false)
"""p = PictorialBar(init_opts=opts.InitOpts(theme='white',width='1000px',height='800px',bg_color=JsCode(bg_color_js)))p.add_xaxis([0, 1])# 此部分数据为要显示的数值
p.add_yaxis("",[{"value": m_p,"symbol": symbols[0],'symbolBoundingData': 100,"itemStyle": {"normal": {"color": 'rgba(105,204,230)'  # 单独控制颜色}},},{"value": f_p,"symbol": symbols[1],'symbolBoundingData': 100,"itemStyle": {"normal": {"color": 'rgba(255,130,130)'  # 单独控制颜色}},}],label_opts=opts.LabelOpts(is_show=True,position='inside',font_family='Arial',font_weight='bolder',font_size=40,formatter='{c}%'),symbol_repeat=False,is_symbol_clip=True
)# 此部分数据用于背景,设置为100
p.add_yaxis("",[{"value": 100,"symbol": symbols[0],'symbolBoundingData': 100,"itemStyle": {"normal": {"color": 'rgba(105,204,230,0.40)'  # 单独控制颜色}},},{"value": 100,"symbol": symbols[1],'symbolBoundingData': 100,"itemStyle": {"normal": {"color": 'rgba(255,130,130,0.40)'  # 单独控制颜色}},}],category_gap='30%',label_opts=opts.LabelOpts(is_show=False),is_symbol_clip=True,symbol_repeat=False
)p.set_global_opts(title_opts=opts.TitleOpts(title="男款商品 VS 女款商品",subtitle='依据订单商品名称中的关键词判断, 如“women”,“girl”等。',pos_left='center'),tooltip_opts=opts.TooltipOpts(is_show=False),legend_opts=opts.LegendOpts(is_show=False),xaxis_opts=opts.AxisOpts(is_show=False),yaxis_opts=opts.AxisOpts(is_show=False, max_=100),
)p.render_notebook()

商品属性

  • 哪个尺码python教程的衣服买的更多?
  • 那个颜色更受欢迎?

pie = Pie(init_opts=opts.InitOpts(theme='white',width='1000px',height='500px',bg_color='#F5F5F5',)
)
pie.add("",c.most_common(10),radius=["30%", "50%"],center=["25%", "50%"],# rosetype="area",label_opts=opts.LabelOpts(is_show=True, formatter='{b}:{d}%'),itemstyle_opts={'normal': {'shadowColor': 'rgba(0, 0, 0, .5)',  # 阴影颜色'shadowBlur': 5,  # 阴影大小'shadowOffsetY': 5,  # Y轴方向阴影偏移'shadowOffsetX': 5,  # x轴方向阴影偏移'opacity': '0.7',}})pie.add("",cl.most_common(10),radius=["30%", "50%"],center=["75%", "50%"],# rosetype="area",label_opts=opts.LabelOpts(is_show=True, formatter='{b}:{d}%'),itemstyle_opts={'normal': {'shadowColor': 'rgba(0, 0, 0, .5)',  # 阴影颜色'shadowBlur': 5,  # 阴影大小'shadowOffsetY': 5,  # Y轴方向阴影偏移'shadowOffsetX': 5,  # x轴方向阴影偏移# 'opacity': '0.7',}})
pie.set_global_opts(title_opts=[dict(text='商品属性',left='center',top='5%',textStyle=dict(color='#282828',fontSize=20)),dict(text='SIZE',left='23%',top='48%',textStyle=dict(color='#282828',fontSize=17)),dict(text='COLOR',left='72%',top='48%',textStyle=dict(color='#282828',fontSize=17))],tooltip_opts=opts.TooltipOpts(is_show=False),legend_opts=opts.LegendOpts(is_show=False),visualmap_opts=opts.VisualMapOpts(is_show=False,max_=300,range_color=['rgb(1, 191, 236)', 'rgb(128, 255, 165)'])
)
pie.render_notebook()

词云图

from stylecloud import gen_stylecloud
from IPython.display import Imagegen_stylecloud(' '.join(word_list),size=1000,max_words=1000,# palette='palettable.tableau.TableauMedium_10',icon_name='fab fa-amazon',output_name='comment.png',)Image(filename='comment.png')

Python数据分析+可视化项目案例教学:亚马逊平台用户订单数据分析相关推荐

  1. OAuth2.0项目实战干货(亚马逊平台对接)

    消息队列的对比-Auth2.0项目实战-亚马逊平台对接 一 OAuth2.0介绍 二 开发背景 三 Auth2.0项目实战***干货 Auth2.0数据流 亚马逊平台: 作为外部第三方平台 内部应用平 ...

  2. 跨境电商ERP项目孵化,亚马逊无货源一站式教学指导。

    做网络电商的朋友应该对无货源店不会陌生,也就是国内俗称的一件代发,国内互联网电商的某宝,某东,拼夕夕卖家深受吸引,通过操作无货源店,不需要门店,不需要囤货,仓库都不需要的一件代发模式,成功开店,低成本 ...

  3. 亚马逊云科技Serverless数据分析,助力猎豹移动构建更高性价比数据仓库

    也许你也听过这样一句话:"21世纪什么最贵?人才!"当数字经济全面席卷而来,这个问题的答案不可置否地变为了"数据".通过数据分析获取近乎实时的洞察,以驱动业务的 ...

  4. Python实现通过ASIN爬取亚马逊产品评论

    Python实现通过ASIN爬取亚马逊产品评论 一.最近一直在研究爬取亚马逊评论相关的信息,亚马逊的反爬机制还是比较严格的,时不时就封cookie啊封ip啊啥的.而且他们的网页排版相对没有那么规则,所 ...

  5. 亚马逊平台儿童玩具CPC认证解决方案

    亚马逊要求儿童玩具办理CPC认证,现在已经在强制性执行.无论是何种玩具,塑料玩具,木质玩具,毛绒玩具,EVA玩具,粘土玩具等等,所有类别的玩具都办理CPC认证,如何才能顺利一次性通过亚马逊审核,确保产 ...

  6. 亚马逊平台:华人卖家“很牛”!

    10月22日,在广交会同期举办的"广货通天下-跨境电商(出口)群英荟",是广交会期间唯一一场大型跨境电商活动,首次聚焦跨境出口领域,吸引了大批广交会外贸企业参与.该大会由广东商网商 ...

  7. 亚马逊购物用户体验分析

     [版权声明]:版权归作者Alite所有,转载时请以超链接形式标明文章原始出处和作者信息及本声明:http://www.alitedesign.com/  现在电子商务网站的设计,正面临着一系列的挑战 ...

  8. 亚马逊平台的优势有哪些?

    亚马逊平台的优势有哪些? 1.亚马逊平台的访问量. 作为全球第一大电商平台,亚马逊的销售潜力无疑是很大的,亚马逊现在拥有数亿的会员,这也就意味着全球每天有数亿的用户访问亚马逊网站,在亚马逊平台消费.因 ...

  9. 亚马逊平台还收费吗?收费多少?

    亚马逊是收费的,只要你的账户开通了就要给亚马逊交费.这个就是账户管理费.其实不用觉得不公平,这种费用几乎所有的平台都会收.就向百度营销,也会收取平台管理费. 除此之外,亚马逊全球收款也有低费用政策.亚 ...

  10. 亚马逊运营自然订单减少了该怎么办?

    在运营中,提高了广告竞价和预算,广告订单增多的同时,自然订单减少了,总体盈利不如之前了,该怎么办呢?接下来就来好好看看小编的这三种思路: 1.从运营要算总账的角度,既然利润减少了,那可以尝试着降低广告 ...

最新文章

  1. access 一亿条数据_循环运算数据溢出
  2. 为什么要用GCD-Swift2.x
  3. 深度学习之caffe1——软件配置与测试
  4. 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察
  5. Python中集合(set)的操作及一些比较常见的用法
  6. IDC:2021年全年中国市场折叠屏产品规模约150万台
  7. python __setattr__和__getattr__
  8. linux查看双机热备运行,linux双机热备,故障切换!!!
  9. Navicat for mysql 远程连接 mySql数据库10061、1045错误
  10. Selenium爬虫 -- WebDriver多标签页创建与切换
  11. Oracle Exadata一体机简介
  12. Android开发——监听Android手机的网络状态
  13. 电脑插上U盘后不显示怎么办?
  14. 历年软件设计师下午考试试题汇总统计
  15. python帝国cms_用python 发 帝国cms 文章
  16. 网络负能量为何发展如此迅速?
  17. dof景深matlab,CG制作景深(DOF)的方法
  18. Android-音视频学习系列-(十)基于-FFmpeg-+-OpenSLES-实现音频万能播放器
  19. 前端工程师说明(仅以自勉)
  20. 【体验系列】云IDE使用初体验

热门文章

  1. 单结晶体管的导电特性_单结晶体管的结构特点与工作特点
  2. unity 智能巡逻兵
  3. CodeForces - 835C Star sky
  4. 北科大计通学院计算机专业双一流,计算机专业双一流高校名单-双一流大学计算机专业排名...
  5. 江苏建筑职业技术学院计算机一级报名流程,江苏建筑职业技术学院2014年单独招生报名流程...
  6. 150人定律与分布式拓展关联思考
  7. 李彦宏:如果 Google 重返中国,百度有信心再 PK 一次,再赢一次
  8. 今日头条有浏览记录吗,浏览今日头条能赚钱吗
  9. python中itertools模块zip_longest函数实现逻辑
  10. 《谷歌和亚马逊如何做产品》读书笔记之八:胜在团队