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