現在直播帶貨太火了,宋宋最近也在小紅書上敗家了好幾單,身為程序員的宋宋有點不甘心。拿到了一份小紅書直播帶貨榜數據分析下,看一看小紅書的賣貨實力和用戶分析?本案例主要針對DataFrame的數據統計和排序知識點的講解。
### 數據展示與清洗
首先了解下我們即將使用的數據book.csv(獲取數據文末可以網盤下載):
```python
import pandas as pd
import numpy as np
import random
from matplotlib import pyplot as plt
from pyecharts.charts import Boxplot
df= pd.read_csv("book.csv")
df.info()
```
結果:
數據內容如下:
其中每列表示如下:
> 數據說明 這是一個關于用戶在小紅書購買金額的數據集, 共有29452條數據, 7個變量。
>
> (1) revenue 用戶下單的購買金額
>
> (2) 3rd_party_stores 用戶過往在app中從第三方購買的數量,為0則代表只在自營商品中購買
>
> (3) Gender 性別 1:男 ,0:女 ,未知則空缺
>
> (4) Engaged_last_30 最近30天在app上有參與重點活動(0:討論,1:賣家秀的活動)
>
> (5) Lifecycle 生命周期分為A,B,C (分別對應注冊A:6個月內,B:1年內,C:2年內)
>
> (6) days_since_last_order 最近一次下單距今的天數 (小于1則代表當天有下單)
>
> (7)previous_order_amount 以往累積的用戶購買金額
大家都知道我們在分析數據前都會判斷下,是否存在空缺值,重復值、異常值等,即進行數據的清洗。
```python
df.isnull().any()
```
```
df.duplicated().any()
```
結果是:
> True
說明存在空缺值和重復值,于是我們要對這些數據進行處理
```python
# 去除重復數值和缺失數值
df.drop_duplicates(inplace=True)
df.reset_index(drop=True,inplace=True)
df.replace('nan',np.nan,inplace=True)
#把性別、年齡、用戶過往中為nan的數值分別用隨機、平均值、隨機替代
df.fillna(value={"gender":random.choice([1.0,0.0]),"age":round(df["age"].mean(),0),"engaged_last_30":random.choice([1.0,0.0])},inplace=True)
df.head()
```
結果:
我們可以發現個別數據的列名比較長,所以我們需要簡化部分columns的命名使用rename方法,這樣方便我們后續的使用
```python
df=df.rename(columns={
"engaged_last_30": "engage",
df.keys()[5]: "last_order",
"previous_order_amount":"accumulation",
"3rd_party_stores":"3rd"})
```
結果:
更多關于“Python 培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。
注:本文部分文字和圖片來源于網絡,如有侵權,請聯系刪除。版權歸原作者所有!