Pandas+Pyecharts | 전자제품 판매 데이터 분석 시각화 + 사용자 RFM 초상화
이 문제는 Python을 사용하여 전자 제품 판매 데이터를 분석합니다. 다음을 살펴보세요.
-
월별 주문 수량 및 주문 금액
-
일일 주문량 분포
남녀 사용자 주문 비율
-
여성/남성 구매상품 TOP20
전연령 주문 수량 주문 금액
사용자 RFM 레벨 이미지
-
잠깐...
모두에게 도움이 되기를 바랍니다. 질문이 있으신 경우 개선이 필요한 부분이 있으시면 편집자에게 연락주시기 바랍니다.
관련 라이브러리:
Pandas—데이터 처리
Pyecharts—데이터 시각화
import pandas as pd from pyecharts.charts import Line from pyecharts.charts import Bar from pyecharts.charts import Pie from pyecharts.charts import Grid from pyecharts.charts import PictorialBar from pyecharts import options as opts from pyecharts.commons.utils import JsCode import warnings warnings.filterwarnings('ignore')
df = pd.read_csv("电子产品销售分析.csv")
一共有564169条数据,其中category_code、brand两列有部分数据缺失。
2.3 去掉部分用不到的列
df1 = df[['event_time', 'order_id', 'category_code', 'brand', 'price', 'user_id', 'age', 'sex', 'local']] df1.shape
(564169, 9)
2.4 去除重复数据
df1 = df1.drop_duplicates() df1.shape
(556456, 9)
2.5 增加部分时间列
df1['event_time'] = pd.to_datetime(df1['event_time'].str[:19],format="%Y-%m-%d %H:%M:%S") df1['Year'] = df1['event_time'].dt.year df1['Month'] = df1['event_time'].dt.month df1['Day'] = df1['event_time'].dt.day df1['hour'] = df1['event_time'].dt.hour df1.head(10)

2.6 过滤数据,也可以选择均值填充
df1 = df1.dropna(subset=['category_code']) df1 = df1[(df1["Year"] == 2020)&(df1["price"] > 0)] df1.shape
(429261, 13)
2.7 对年龄分组
df1['age_group'] = pd.cut(df1['age'],[10,20,30,40,50],labels=['10-20','20-30','30-40','40-50'])
2.8 增加商品一、二级分类
df1["category_code_1"] = df1["category_code"].apply(lambda x: x.split(".")[0] if "." in x else x) df1["category_code_2"] = df1["category_code"].apply(lambda x: x.split(".")[-1] if "." in x else x) df1.head(10)

def get_bar1(): bar1 = ( Bar() .add_xaxis(x_data) .add_yaxis("订单数量", y_data1) .extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}万"))) .set_global_opts( legend_opts=opts.LegendOpts(pos_top='25%', pos_left='center'), title_opts=opts.TitleOpts( title='1-每月订单数量订单额', subtitle='-- 制图@公众号:Python当打之年 --', pos_top='7%', pos_left="center" ) ) ) line = ( Line() .add_xaxis(x_data) .add_yaxis("订单额", y_data2, yaxis_index=1) ) bar1.overlap(line)

下半年的订单量和订单额相对于上半年明显增多。 8月份的订单量和订单额达到峰值。
def get_bar2(): pie1 = ( Pie() .add( "", datas, radius=["13%", "25%"], label_opts=opts.LabelOpts(formatter="{b}: {d}%"), ) ) bar1 = ( Bar(init_opts=opts.InitOpts(theme='dark', width='1000px', height='600px', bg_color='#0d0735')) .add_xaxis(x_data) .add_yaxis("", y_data, itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function))) .set_global_opts( legend_opts=opts.LegendOpts(is_show=False), title_opts=opts.TitleOpts( title='2-一月各天订单数量分布', subtitle='-- 制图@公众号:Python当打之年 --', pos_top='7%', pos_left="center" ) ) ) bar1.overlap(pie1)

从每天的订单量上看,上中下旬订单量基本持平,占比都在30%以上,上旬和中旬要稍微高一点。

从订单时段上看,上午的订单要明显高于下午,占比达到了70.26%,尤其是在早上7:00-11:00之间。
男性订单数量占比49.55%,女性订单数量占比50.45%,基本持平。
3.5 女性/男性购买商品TOP20
def get_bar3(): bar1 = ( Bar() .add_xaxis(x_data1) .add_yaxis('女性', y_data1, label_opts=opts.LabelOpts(position='right') ) .set_global_opts( title_opts=opts.TitleOpts( title='5-女性/男性购买商品TOP20', subtitle='-- 制图@公众号:Python当打之年 --', pos_top='3%', pos_left="center"), legend_opts=opts.LegendOpts(pos_left='20%', pos_top='10%') ) .reversal_axis() ) bar2 = ( Bar() .add_xaxis(x_data2) .add_yaxis('男性', y_data2, label_opts=opts.LabelOpts(position='right') ) .set_global_opts( legend_opts=opts.LegendOpts(pos_right='25%', pos_top='10%') ) .reversal_axis() ) grid1 = ( Grid() .add(bar1, grid_opts=opts.GridOpts(pos_left='12%', pos_right='50%', pos_top='15%')) .add(bar2, grid_opts=opts.GridOpts(pos_left='60%', pos_right='5%', pos_top='15%')) )

男性女性购买商品TOP20基本一致:smartphone、notebook、refrigerators、headphone等四类商品购买量比较大。
在10-50年龄段内,随着年龄段的增加,订单量和订单金额也在逐步增大。 细分的话,20-30和40-50这两个年龄段稍高一些。
3.7 各年龄段购买商品TOP10
3.8 用户RFM等级画像
RFM模型是衡量客户价值和客户创利能力的重要工具和手段。该模型通过一个客户的近期购买行为(R)、购买的总体频率(F)以及花了多少钱(M)三项指标来描述该客户的价值状况,从而能够更加准确地将成本和精力更精确的花在用户层次身上,实现针对性的营销。
用户分类:
def rfm_func(x): level = x.apply(lambda x:"1" if x > 0 else '0') RMF = level.R + level.F + level.M dic_rfm ={ '111':'重要价值客户', '011':'重要保持客户', '101':'重要发展客户', '001':'重要挽留客户', '110':'一般价值客户', '100':'一般发展客户', '010':'一般保持客户', '000':'一般挽留客户' } result = dic_rfm[RMF] return result
计算等级:
df_rfm = df1.copy() df_rfm = df_rfm[['user_id','event_time','price']] # 时间以当年年底为准 df_rfm['days'] = (pd.to_datetime("2020-12-31")-df_rfm["event_time"]).dt.days # 计算等级 df_rfm = pd.pivot_table(df_rfm,index="user_id", values=["user_id","days","price"], aggfunc={"user_id":"count","days":"min","price":"sum"}) df_rfm = df_rfm[["days","user_id","price"]] df_rfm.columns = ["R","F","M"] df_rfm['RMF'] = df_rfm[['R','F','M']].apply(lambda x:x-x.mean()).apply(rfm_func,axis=1) df_rfm.head()

用户画像:

根据RFM模型可将用户分为以下8类:
重要价值客户:最近消费时间近、消费频次和消费金额都很高。 重要保持客户:最近消费时间较远,消费金额和频次都很高。
중요 개발 고객 : 최근 소비 시간이 많고 소비량이 많지만 빈도가 낮고 충성도가 낮으며 잠재력이 높은 사용자는 개발에 집중해야 합니다.
고객 유지 중요 : 최근 소비 시간이 멀고, 소비 빈도는 높지 않으나, 소비량이 많은 유저는 앞으로 길을 잃을 유저일 수도 있고, 이미 길을 잃은 유저일 수도 있으니, 및 보존 조치를 취해야 합니다.
일반 가치 고객: 최근 소비 시간, 빈도가 높지만 소비량이 적습니다. 단가를 높여야 합니다.
일반 개발 고객 : 최근 소비 시기가 비교적 최근이고 소비량과 빈도가 높지 않습니다.
일반적으로 고객 유지 : 최근 소비 시기가 멀고 소비 빈도가 높으며 소비량이 높지 않습니다.
일반고객유지율 : 모든 지수가 높지 않으니 적당히 포기하셔도 됩니다.
위 내용은 Pandas+Pyecharts | 전자제품 판매 데이터 분석 시각화 + 사용자 RFM 초상화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Pandas 설치 튜토리얼: 일반적인 설치 오류 및 해결 방법 분석, 구체적인 코드 예제가 필요합니다. 소개: Pandas는 데이터 정리, 데이터 처리 및 데이터 시각화에 널리 사용되는 강력한 데이터 분석 도구이므로 현장에서 높은 평가를 받고 있습니다. 데이터 과학의 . 그러나 환경 구성 및 종속성 문제로 인해 Pandas를 설치할 때 몇 가지 어려움과 오류가 발생할 수 있습니다. 이 기사에서는 Pandas 설치 튜토리얼을 제공하고 몇 가지 일반적인 설치 오류와 해결 방법을 분석합니다. 1. 팬더 설치

Pandas는 다양한 유형의 데이터 파일을 쉽게 읽고 처리할 수 있는 강력한 데이터 분석 도구입니다. 그중 CSV 파일은 가장 일반적이고 일반적으로 사용되는 데이터 파일 형식 중 하나입니다. 이 기사에서는 Pandas를 사용하여 CSV 파일을 읽고 데이터 분석을 수행하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 필요한 라이브러리 가져오기 먼저 아래와 같이 필요할 수 있는 Pandas 라이브러리 및 기타 관련 라이브러리를 가져와야 합니다. importpandasasspd 2. Pan을 사용하여 CSV 파일 읽기

Python은 pip, conda, 소스 코드 및 IDE 통합 패키지 관리 도구를 사용하여 pandas를 설치할 수 있습니다. 자세한 소개: 1. pip를 사용하고 터미널이나 명령 프롬프트에서 pip install pandas 명령을 실행하여 pandas를 설치합니다. 2. conda를 사용하고 터미널이나 명령 프롬프트에서 conda install pandas 명령을 실행하여 pandas를 설치합니다. 설치 등.

Python에서 pandas를 설치하는 단계: 1. 터미널 또는 명령 프롬프트를 엽니다. 2. "pip install pandas" 명령을 입력하여 pandas 라이브러리를 설치합니다. 3. 설치가 완료될 때까지 기다리면 pandas 라이브러리를 가져와 사용할 수 있습니다. 4. 사용 pandas를 설치하기 전에 해당 가상 환경을 활성화해야 합니다. 5. 통합 개발 환경을 사용하는 경우 "import pandas as pd" 코드를 추가할 수 있습니다. 팬더 라이브러리를 가져옵니다.

Pandas를 사용하여 txt 파일을 올바르게 읽으려면 특정 코드 예제가 필요합니다. Pandas는 널리 사용되는 Python 데이터 분석 라이브러리로 CSV 파일, Excel 파일, SQL 데이터베이스 등을 포함하여 다양한 데이터 유형을 처리하는 데 사용할 수 있습니다. 동시에 txt 파일과 같은 텍스트 파일을 읽는 데에도 사용할 수 있습니다. 그러나 txt 파일을 읽을 때 인코딩 문제, 구분 기호 문제 등과 같은 몇 가지 문제가 발생할 수 있습니다. 이 기사에서는 팬더를 사용하여 txt를 올바르게 읽는 방법을 소개합니다.

Pandas를 사용하여 txt 파일을 읽는 실용적인 팁, 데이터 분석 및 데이터 처리에서 txt 파일은 일반적인 데이터 형식입니다. Pandas를 사용하여 txt 파일을 읽으면 빠르고 편리한 데이터 처리가 가능합니다. 이 기사에서는 특정 코드 예제와 함께 pandas를 사용하여 txt 파일을 더 잘 읽는 데 도움이 되는 몇 가지 실용적인 기술을 소개합니다. 구분 기호가 있는 txt 파일 읽기 팬더를 사용하여 구분 기호가 있는 txt 파일을 읽을 때 read_c를 사용할 수 있습니다.

데이터 처리 도구: Pandas는 SQL 데이터베이스에서 데이터를 읽고 특정 코드 예제가 필요합니다. 데이터 양이 계속 증가하고 복잡성이 증가함에 따라 데이터 처리는 현대 사회에서 중요한 부분이 되었습니다. 데이터 처리 프로세스에서 Pandas는 많은 데이터 분석가와 과학자가 선호하는 도구 중 하나가 되었습니다. 이 문서에서는 Pandas 라이브러리를 사용하여 SQL 데이터베이스에서 데이터를 읽는 방법을 소개하고 몇 가지 특정 코드 예제를 제공합니다. Pandas는 Python을 기반으로 한 강력한 데이터 처리 및 분석 도구입니다.

Pandas 중복 제거 방법의 비밀: 데이터를 중복 제거하는 빠르고 효율적인 방법으로, 데이터 분석 및 처리 과정에서 데이터 중복이 자주 발생합니다. 중복된 데이터는 분석 결과를 오도할 수 있으므로 중복 제거는 매우 중요한 단계입니다. 강력한 데이터 처리 라이브러리인 Pandas는 데이터 중복 제거를 달성하기 위한 다양한 방법을 제공합니다. 이 기사에서는 일반적으로 사용되는 중복 제거 방법을 소개하고 특정 코드 예제를 첨부합니다. 단일 컬럼 기반 중복 제거의 가장 일반적인 경우는 특정 컬럼의 값이 중복되는지 여부에 따른 것입니다.
