端午節淘寶糉子交易

一、端午節的淘寶糉子交易

剛剛考完試來做題做了一晚上一道題都沒做完全,先提交打卡了,後面再慢慢補。

問題 (1) 請刪除最後一列爲缺失值的行,並求所有在杭州發貨的商品單價均值。

import pandas as pd
import numpy as np
df = pd.read_csv(r'data\端午糉子數據.csv')
df.head()
標題 價格 付款人數 店鋪 發貨地址
0 五芳齋糉子禮盒 心悅+18只裝鹹鴨蛋組合端午節禮品團購嘉興肉糉子 129 6人付款 五芳齋官方旗艦店 浙江 嘉興
1 北京稻香村端午糉子手工豆沙糉220g*2袋散裝豆沙糉香甜軟糯豆沙糉 44 8人付款 天貓超市 上海
2 五芳齋糉子禮盒裝鮮肉鹹蛋黃大肉糉嘉興豆沙甜糉端午團購散裝禮品 89.9 100萬+人付款 五芳齋官方旗艦店 浙江 嘉興
3 稻香私房鮮肉糉蛋黃肉糉嘉興糉子鹹鴨蛋禮盒裝端午節送禮特產團購 138 1936人付款 稻香村食品旗艦店 北京
4 嘉興糉子 蛋黃鮮肉糉新鮮大肉糉早餐散裝團購浙江特產蜜棗多口味 3.8 9500+人付款 城城餵食貓 浙江 嘉興
df.info()
df.columns
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4403 entries, 0 to 4402
Data columns (total 5 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   標題      4403 non-null   object
 1    價格     4403 non-null   object
 2   付款人數    4332 non-null   object
 3   店鋪      4403 non-null   object
 4   發貨地址    4400 non-null   object
dtypes: object(5)
memory usage: 172.1+ KB





Index(['標題', ' 價格', '付款人數', '店鋪', '發貨地址 '], dtype='object')
df.columns = df.columns.str.strip()
df[df['發貨地址'].isna()]
標題 價格 付款人數 店鋪 發貨地址
1847 貞豐胖四娘灰糉傳統肉糉真空板栗鮮肉糉方便速食端午貴州糉子5只 46.8 41人付款 貴州原產地商品官方旗艦店 NaN
2418 素繽紛糉子140g*6入袋裝淨素素食純素蔬食素糉早餐點心端午送禮 49.4 40人付款 素繽紛精緻素食自助式餐廳 NaN
2716 辰頤物語熱銷嘉興私房糉子10只禮盒裝6味大糉葷素搭配送禮可團購 39.9 110人付款 水果達人多喫水果有益健康 NaN
df.dropna(axis=0,subset=['發貨地址'],inplace=True)
df[df['發貨地址'].isna()]
標題 價格 付款人數 店鋪 發貨地址
df[df['發貨地址'].str.contains(r'杭州')]
標題 價格 付款人數 店鋪 發貨地址
15 【百草味-經典龍騰糉1460g】蛋黃肉甜糉子特產嘉興糉端午整箱禮盒 78 2372人付款 百草味旗艦店 浙江 杭州
26 知味觀端午節糉子甜糉鹹蛋黃大肉糉禮盒裝嘉興味鮮肉糉子散裝團購 64.9 8.5萬+人付款 知味觀官方旗艦店 浙江 杭州
53 知味觀龍飛糉舞端午節糉子禮盒裝禮品嘉興口味鮮肉糉子綠豆糕團購 88 1355人付款 知味觀官方旗艦店 浙江 杭州
71 知味觀風俗志端午節糉子禮盒裝送禮蛋黃鮮肉糉甜糉綠豆糕禮品團購 158 1333人付款 知味觀官方旗艦店 浙江 杭州
89 知味觀糉子新鮮大肉糉手工嘉興口味鮮肉糉子懶人食品散裝早餐速食 52.9 7500+人付款 知味觀官方旗艦店 浙江 杭州
... ... ... ... ... ...
4355 知味觀糉樂樂糉子禮盒裝大肉糉蛋黃鮮肉糉豆沙甜糉嘉興口味團購 79.9 21人付款 杭州知味觀 浙江 杭州
4364 網易嚴選五彩纏角糉 中國糉禮盒裝 1.2千克 糉子蛋黃肉糉真空新鮮 109 3人付款 網易嚴選美食館 浙江 杭州
4375 妙維根板栗淨素糉糙米藜麥全素糉子無糖低卡低gi代餐無油低脂飽腹 11.99 42人付款 xutong2080 浙江 杭州
4376 東方賀禮端午節禮盒嘉興糉子高湯蛋黃鮮大肉糉特產現已支持定製 45_ 17人付款 緣來有禮 浙江 杭州
4397 知味觀家鄉知味糉子禮盒裝端午節禮品杭州特產鴨蛋大禮包送禮福利 82 7人付款 韓麗麗92 浙江 杭州

180 rows × 5 columns

df[df['發貨地址'].str.contains(r'杭州')].價格.astype('float').mean()
80.90088888888877

(2) 商品標題帶有“嘉興”但發貨地卻不在嘉興的商品有多少條記錄?

df[df['標題'].str.contains(r'嘉興')&(~df['發貨地址'].str.contains(r'嘉興'))]
標題 價格 付款人數 店鋪 發貨地址
3 稻香私房鮮肉糉蛋黃肉糉嘉興糉子鹹鴨蛋禮盒裝端午節送禮特產團購 138 1936人付款 稻香村食品旗艦店 北京
6 五芳齋華禮竹籃禮盒1360g蛋糉組合端午禮品嘉興糉子禮盒 159 1028人付款 天貓超市 上海
8 真真老老嘉情禮盒10糉6蛋1.52kg/盒嘉興糉子端午節糉子禮盒裝 109 2117人付款 天貓超市 上海
9 五芳齋嘉興糉子新鮮量販蛋黃肉糉豆沙糉悅喜散裝端午特產600g*2袋 59.9 1349人付款 天貓超市 上海
10 真真老老糉子臻芯800g/盒*1端午節禮盒裝嘉興特產送禮 75 1815人付款 天貓超市 上海
... ... ... ... ... ...
4377 超港端午糉子肉糉蜜棗糉大肉棕子黃山特產禮盒新鮮嘉興糉子肉糉 39.9 67人付款 超港旗艦店 安徽 黃山
4383 真真老老真情糉子鹹蛋禮盒嘉興特產肉糉豆沙甜棗糉端午節團購批發 79.9 10人付款 曈寶食品專營店 上海
4386 臻味德嘉興糉子竹籃禮盒裝農家手工蛋黃鮮肉棕甜糉端午節伴手禮品 49.08 2人付款 氣泡西柚屋 浙江 溫州
4393 傅太糉子10只蛋黃肉糉鮮肉糉嘉興風味肉糉子即食早餐端午團購 60.2 46人付款 love侯氏 江西 萍鄉
4401 【粉絲專享】端午節特產新鮮蛋黃鮮肉糉豆沙嘉興糉子800g/箱 65.9 149人付款 chaoge1931 安徽 合肥

1032 rows × 5 columns

df[df['標題'].str.contains(r'嘉興')&(~df['發貨地址'].str.contains(r'嘉興'))].count()
標題      1032
價格      1032
付款人數     984
店鋪      1032
發貨地址    1032
dtype: int64

(3) 請按照分位數將價格分爲“高、較高、中、較低、低”5 個類別,再將 類別結果插入到標題一列之後,最後對類別列進行降序排序。

def is_number(x):
    try:
        float(x)
        return True
    except:
        return False
df[~df.價格.map(is_number)]
    
標題 價格 付款人數 店鋪 發貨地址
538 五芳齋糉子蛋黃鮮肉糉豆沙糉栗子肉棕子新鮮散裝批發團購嘉興肉糉 45.9. 1.0萬+人付款 五芳齋官方旗艦店 浙江 嘉興
4376 東方賀禮端午節禮盒嘉興糉子高湯蛋黃鮮大肉糉特產現已支持定製 45_ 17人付款 緣來有禮 浙江 杭州
# df[~df.價格.map(is_number)].價格=[45.9,45]
df.loc[[538,4376],'價格'] = [45.9,45]
df[~df.價格.map(is_number)]
標題 價格 付款人數 店鋪 發貨地址
df['價格']=df['價格'].astype('float')
df['類別'] = pd.qcut(df.價格,[0,0.2,0.4,0.6,0.8,1.],labels=['低','較低','中','較高','高'])
df.head()
標題 價格 付款人數 店鋪 發貨地址 類別
0 五芳齋糉子禮盒 心悅+18只裝鹹鴨蛋組合端午節禮品團購嘉興肉糉子 129.0 6人付款 五芳齋官方旗艦店 浙江 嘉興
1 北京稻香村端午糉子手工豆沙糉220g*2袋散裝豆沙糉香甜軟糯豆沙糉 44.0 8人付款 天貓超市 上海
2 五芳齋糉子禮盒裝鮮肉鹹蛋黃大肉糉嘉興豆沙甜糉端午團購散裝禮品 89.9 100萬+人付款 五芳齋官方旗艦店 浙江 嘉興 較高
3 稻香私房鮮肉糉蛋黃肉糉嘉興糉子鹹鴨蛋禮盒裝端午節送禮特產團購 138.0 1936人付款 稻香村食品旗艦店 北京
4 嘉興糉子 蛋黃鮮肉糉新鮮大肉糉早餐散裝團購浙江特產蜜棗多口味 3.8 9500+人付款 城城餵食貓 浙江 嘉興
df.sort_values(by='類別',ascending=False)

標題 價格 付款人數 店鋪 發貨地址 類別
0 五芳齋糉子禮盒 心悅+18只裝鹹鴨蛋組合端午節禮品團購嘉興肉糉子 129.00 6人付款 五芳齋官方旗艦店 浙江 嘉興
847 真真老老蛋黃肉糉140g*60個新鮮大肉糉冷凍方便早餐嘉興糉子端午 168.00 139人付款 tb6182109_2012 上海
2773 山西雙合成糉子端午節送禮御糉膳坊禮盒糉葉板栗豆沙黃米雜糧糉 129.00 33人付款 雙合成旗艦店 山西 晉中
2768 採芝齋糉子甜糉新鮮蛋黃大肉糉嘉興口味鮮肉糉子食品端午禮盒定製 216.00 47人付款 採芝齋杭州專賣店 浙江 杭州
2763 真真老老臻瑞禮盒1.12kg/盒端午節糉子禮盒裝送130g經典鮮肉糉 126.00 2人付款 天貓超市 上海
... ... ... ... ... ... ...
3637 新鮮糉葉包糉子的葉子幹糉子葉大號竹子葉竹葉葦葉皮大鮮糉葉幹種 4.00 617人付款 海倪食品專營店 廣東 廣州
2129 嘉興五芳齋糉子 真空100克*2只紫米慄蓉糉端午節甜糉子 11.00 2897人付款 五芳齋官方旗艦店 浙江 嘉興
2130 三珍齋蛋黃糉200g真空100g*2只嘉興特產糉子速食早餐 7.88 NaN 天貓會員店 上海
2131 俏香閣經典鮮肉糉子120g*2只端午節嘉興特產速食早餐點心 5.90 NaN 天貓會員店 上海
2916 甜糉子蜜棗糉端午送人禮品豆沙糉紅豆赤豆糉方便早餐素棕散裝團購 21.90 230人付款 集採食品專營店 浙江 嘉興

4400 rows × 6 columns

(4) 付款人數一欄有缺失值嗎?若有則請利用上一問的分類結果對這些缺失 值進行合理估計並填充。

df[df.付款人數.isnull()].head()
標題 價格 付款人數 店鋪 發貨地址 類別
183 五芳齋 140g*8只大糉子 福韻端午豆沙蜜棗蛋黃糉新包裝送禮禮盒 50.9 NaN 天貓會員店 上海
243 五芳齋福雅五芳糉子禮盒端午鹹甜糉子綠豆糕鹹鴨蛋送禮 79.9 NaN 天貓會員店 上海 較高
347 【百草味】龍騰糉1090g 早餐大肉糉子湖州特產嘉興糉 39.9 NaN 天貓會員店 上海
386 五芳齋華禮竹籃禮盒1360g蛋糉組合端午禮品嘉興糉子禮盒 129.0 NaN 天貓會員店 上海
389 百草味 龍騰糉禮盒1460g 10只裝早餐大肉糉子湖州特產嘉興 49.9 NaN 天貓會員店 上海
s1=df[df.付款人數.notna()].付款人數
s1.astype('string')
0           6人付款
1           8人付款
2       100萬+人付款
3        1936人付款
4       9500+人付款
          ...   
4398      347人付款
4399       80人付款
4400        5人付款
4401      149人付款
4402       20人付款
Name: 付款人數, Length: 4329, dtype: string
s12=s1[s1.str.contains(r'萬')].str.extract(r'(\d+.?\d+?)萬')
s12
0
2 100
11 2.0
14 70
26 8.5
36 10
... ...
1333 1.0
1646 1.5
1756 7.0
3155 1.5
3468 2.0

65 rows × 1 columns

s12=s12.astype('float')*10000
s12.head()
0
2 1000000.0
11 20000.0
14 700000.0
26 85000.0
36 100000.0
s13=s1[~s1.str.contains(r'萬')].str.split('人付款',expand=True)[0].str.replace(r'\s+','').str.replace(r'+','').astype('int')
s13
0          6
1          8
3       1936
4       9500
5         17
        ... 
4398     347
4399      80
4400       5
4401     149
4402      20
Name: 0, Length: 4264, dtype: int32
len(s1)==len(s12)+len(s13)
True
s = pd.concat([s13,s12])
s.name = '付款人數'
s.head()
0
0 6.0
1 8.0
3 1936.0
4 9500.0
5 17.0
df2=df[df.付款人數.notna()][['類別','付款人數']].copy()
df2.update(s) # 使用處理後的付款人數更新非缺失值
# df2.info()#sort_values(by='付款人數')#.iloc[s42.index,:]
df2
類別 付款人數
0 6人付款
1 8人付款
2 較高 100萬+人付款
3 1936人付款
4 9500+人付款
... ... ...
4398 347人付款
4399 較高 80人付款
4400 較高 5人付款
4401 較高 149人付款
4402 較高 20人付款

4329 rows × 2 columns

df2
類別 付款人數
0 6人付款
1 8人付款
2 較高 100萬+人付款
3 1936人付款
4 9500+人付款
... ... ...
4398 347人付款
4399 較高 80人付款
4400 較高 5人付款
4401 較高 149人付款
4402 較高 20人付款

4329 rows × 2 columns

# df2.付款人數.astype('float').sort_index().interpolate(limit_direction='both')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章