python数据分析与可视化案例实践,
计算机编程语言数据分析可视化项目案例教学:亚马逊平台用户订单数据分析_mb628b309d85c3f的技术博客_博客
前言关于亚马逊订单数据的探索!
次项目大家就仅当作学习使用好了
导入库进口熊猫作为螺纹中径
从pyecharts .图表导入*
从肾盂造影图将选项作为选项导入
从pyecharts.commons.utils导入JsCode Python从零基础入门到实战系统教程、源码、视频,想要数据集的同学也可以点这里数据处理对时间字段进行处理,转为日期时间;对配送州字段进行处理,原始数据中既有州缩写也有全称,统一为全称呼;df _ C=PD。read _ excel( C:/用户/管理员/桌面/市场占有率. xls’)
df=PD。read _ excel( C:/用户/管理员/桌面/亚马逊入驻商订单报表. 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()
对于idx,df_c.iterrows()中的行:
c_map[row[州名简写]]=行[美国州名英文].替换(u\xa0 ,u )
c_map[SD]=南达科他州
c_map[NM]=新墨西哥州
c_map[SC]=南卡罗来纳州
c_map[NH]=新罕布什尔
c_map[NJ]=新泽西
极好的格式_状态(陈述):
尝试:
c=state.upper().替换( . ), )
在c _ map.keys()中中的丙:
返回c_map
elif c in[x . upper()for x in c _ map。values()]:
返回列表(c _地图。values())[[x . upper()for x in c _ map。values()].指数(c)]
否则:
不返回
除了属性错误:
不返回
df[配送州]=df[配送州].映射(格式状态)
df.head()各时间段订单量早上的订单最多,好像和国内用户习惯不太一样呢~
data=df.groupby([df[下单时间].dt.hour])[订单ID].计数()。重置索引()
data_x=[{}点。数据中我的格式(int(i))下单时间]]
data_y=data[订单ID].tolist()
area_color_js=
新埃查尔兹。图形。线性梯度(
0, 0, 0, 1,
[{offset: 0,color: rgba(128,255,165)},
{offset: 1,color: rgba(1,191,236)}],
假)
bg_color_js=
新埃查尔兹。图形。线性梯度(
0, 0, 0, 1,
[{offset: 0,color: rgba(128,255,165,0.2)},
{offset: 1,color: rgba(1,191,236,0.2)}],
假)
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=圆形,
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))
线。set _ global _ opts(xaxis _ opts=opts .AxisOpts(boundary_gap=False),
yaxis_opts=opts .AxisOpts(axisline_opts=opts .axis lino pts(is _ show=False),
axistick_opts=opts .AxisTickOpts(
is_show=False),
splitline_opts=opts .SplitLineOpts(is_show=True,
linestyle_opts=opts .LineStyleOpts(color=#E0E6F1 ))
),
工具提示_opts=opts .工具选项(
is_show=True,trigger=轴,axis_pointer_type=十字),
title_opts=opts .TitleOpts(title=全天各时间段订单数,pos_left=center )
)
line.render_notebook()
周内订单量分布data=df.groupby([df[下单时间].dt.weekday_name])[订单ID].计数()。重置索引()
cat _ day _ of _ week=PD。API。类型。类别类型(
[星期一,星期二,星期三,星期四,星期五,星期六,星期日],
有序=真
)
数据[下单时间]=数据[下单时间].astype(cat_day_of_week)
data=data.sort_values([下单时间])
data_x=data[下单时间].tolist()
data_y=data[订单ID].tolist()
area_color_js=
新埃查尔兹。图形。线性梯度(
0, 0, 0, 1,
[{offset: 0,color: rgba(128,255,165)},
{offset: 1,color: rgba(1,191,236)}],
假)
bg_color_js=
新埃查尔兹。图形。线性梯度(
0, 0, 0, 1,
[{offset: 0,color: rgba(128,255,165,0.2)},
{offset: 1,color: rgba(1,191,236,0.2)}],
假)
line=Line(
init_opts=opts .InitOpts(
主题=白色,
宽度= 1000像素,
高度= 500像素,
bg_color=JsCode(bg_color_js)))
line.add_xaxis(data_x)
line.add_yaxis(
,
data_y,
is_smooth=True,
symbol=圆形,
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))
线。set _ global _ opts(xaxis _ opts=opts .AxisOpts(boundary_gap=False),
yaxis_opts=opts .轴零件(
is_scale=True,
axisline_opts=opts .axis lino pts(is _ show=False),
axistick_opts=opts .AxisTickOpts(
is_show=False),
splitline_opts=opts .SplitLineOpts(is_show=True,
linestyle_opts=opts .LineStyleOpts(color=#E0E6F1 ))
),
工具提示_opts=opts .工具选项(
is_show=True,trigger=轴,axis_pointer_type=十字),
title_opts=opts .TitleOpts(title=一周内各天订单数,pos_left=center )
)
line.render_notebook()
美国各州订单下载美国地图导入请求
GEO _ data=请求。get(URL= https://echarts。阿帕奇。组织/示例/数据/资产/地理/美国。JSON’).json()
area_move={
阿拉斯加州:{ //把阿拉斯加移到美国主大陆左下方
左:-128,
top: 25,
宽度:15
},
夏威夷:{
左:-110,//夏威夷
top: 25,
宽度:5
},
波多黎各:{ //波多黎各
左:-76,
top: 26,
宽度:2
}
}
data=df.groupby([配送州])[订单ID].计数()。重置索引()
data_pair=[]
对于idx,data.iterrows()中的行:
data_pair.append行[配送州],第[订单ID ]))Map _ chart=Map(init _ opts=opts .InitOpts(宽度= 1000像素,高度=600px ))
map_chart.add_js_funcs(
echarts.registerMap(USA ,{},{ });.格式(
GEO_data,area_move))
map_chart.add(订单数,
数据对=数据对,
maptype=美国,
is_roam=False,
# 关闭标志的显示
is_map_symbol_show=False,
缩放=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,
是_分段=真,
orient=垂直,
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 _记事本()
商品属性根据商品名称关键词来判断,93%的商品都是女款
f,m=0,0
对于df[中的我产品名称]:
尝试:
如果i.upper().__包含__(“女人”)或i.upper().__包含_ _(女孩):
f=1
elif i.upper().__包含_ _(男人):
m=1
否则:
及格
除了属性错误:
及格
f_p=四舍五入(女/(女米)*100)
m_p=四舍五入(m/(f m)*100)符号=[
路径://M18.2629891,11.7131596 L6.8091608,11.7131596 C1.6685112,11.7131596 0,13.032145 0,18.6237673 L0,34.9928467 C0,38.17198847 4.283342,
路径://M28.9624207,31.5315864 L24.4142575,16.4793597 C 23.5227152,13.8063773 20.8817445,11.71107398,11.7107,398 l 12.1,12.127351
]
area_color_js=
新埃查尔兹。图形。线性梯度(
0, 1, 0, 1,
[{offset: 0,color: rgba(128,255,165)},
{offset: 1,color: rgba(1,191,236)}],
假)
p=PictorialBar(
init_opts=opts .InitOpts(
主题=白色,
宽度= 1000像素,
高度= 800像素,
bg_color=JsCode(bg_color_js)))
p.add_xaxis([0,1])
# 此部分数据为要显示的数值
p.add_yaxis(
,
[{
值:m_p,
符号:符号[0],
symbolBoundingData: 100,
项目样式:{
正常:{
color: rgba(105,204,230) #单独控制颜色
}
},
},
{
值:f_p,
符号:符号[1],
symbolBoundingData: 100,
项目样式:{
正常:{
color: rgba(255,130,130) #单独控制颜色
}
},
}
],
label_opts=opts .标签(
is_show=True,
位置=内部,
font_family=Arial ,
font_weight=bolder ,
font_size=40,
formatter="{ c } % ",
符号重复=假
is _ symbol _剪辑=真
)
# 此部分数据用于背景,设置为100
p.add_yaxis(
,
[{
值:100,
符号:符号[0],
symbolBoundingData: 100,
项目样式:{
正常:{
颜色: rgba(105,204,230,0.40)#单独控制颜色
}
},
},
{
值:100,
符号:符号[1],
symbolBoundingData: 100,
项目样式:{
正常:{
颜色: rgba(255,130,130,0.40) #单独控制颜色
}
},
}
],
category_gap=30% ,
label_opts=opts .LabelOpts(is_show=False),
is_symbol_clip=True,
符号重复=假
)
p.set_global_opts(
title_opts=opts .标题选项(
title=男款商品对女款商品,
subtitle=依据订单商品名称中的关键词判断,如"女人"、"女孩"等。,
pos_left=center ),
工具提示_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()
商品属性哪个尺码的衣服买的更多?那个颜色更受欢迎?馅饼=馅饼(
init_opts=opts .InitOpts(
主题=白色,
宽度= 1000像素,
高度= 500像素,
bg_color=#F5F5F5 ,
)
)
pie.add(
,
c.most_common(10),
半径=[30% , 50%],
中心=[25% , 50%],
# rosetype=area ,
label_opts=opts .LabelOpts(is_show=True,formatter={b}:{d}% ),
itemstyle_opts={
正常:{
阴影颜色: rgba(0,0,0,5),#阴影颜色
暗影模糊:5,#阴影大小
shadowOffsetY: 5,# Y轴方向阴影偏移
shadowOffsetX: 5,# x轴方向阴影偏移
不透明度: 0.7 ,
}
}
)
pie.add(
,
cl.most_common(10),
半径=[30% , 50%],
中心=[75% , 50%],
# rosetype=area ,
label_opts=opts .LabelOpts(is_show=True,formatter={b}:{d}% ),
itemstyle_opts={
正常:{
阴影颜色: rgba(0,0,0,5),#阴影颜色
暗影模糊:5,#阴影大小
shadowOffsetY: 5,# Y轴方向阴影偏移
shadowOffsetX: 5,# x轴方向阴影偏移
# 不透明度: 0.7 ,
}
}
)
pie.set_global_opts(
title_opts=[
字典(
text=商品属性,
left=居中,
top=5% ,
text color=#282828 ,
fontSize=20)),
字典(
text=SIZE ,
左=23% ,
top=48% ,
text color=#282828 ,
fontSize=17)),
字典(
text=COLOR ,
左=72% ,
top=48% ,
text color=#282828 ,
fontSize=17))
],
工具提示_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()
词云图从样式云导入gen _样式云
从IPython .显示器导入图像
gen_stylecloud().join(word_list),
尺寸=1000,
max_words=1000,
# palette= palettable。画面。tableau medium _ 10 ,
icon_name=fab fa-amazon ,
output_name=comment.png ,
)
图像(filename=comment.png )
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。