端午节淘宝粽子交易

一、端午节的淘宝粽子交易

刚刚考完试来做题做了一晚上一道题都没做完全,先提交打卡了,后面再慢慢补。

问题 (1) 请删除最后一列为缺失值的行,并求所有在杭州发货的商品单价均值。

import pandas as pd
import numpy as np
df = pd.read_csv(r'data\端午粽子数据.csv')
df.head()
标题价格付款人数店铺发货地址
0五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子1296人付款五芳斋官方旗舰店浙江 嘉兴
1北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽448人付款天猫超市上海
2五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.9100万+人付款五芳斋官方旗舰店浙江 嘉兴
3稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购1381936人付款稻香村食品旗舰店北京
4嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.89500+人付款城城喂食猫浙江 嘉兴
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.841人付款贵州原产地商品官方旗舰店NaN
2418素缤纷粽子140g*6入袋装净素素食纯素蔬食素粽早餐点心端午送礼49.440人付款素缤纷精致素食自助式餐厅NaN
2716辰颐物语热销嘉兴私房粽子10只礼盒装6味大粽荤素搭配送礼可团购39.9110人付款水果达人多吃水果有益健康NaN
df.dropna(axis=0,subset=['发货地址'],inplace=True)
df[df['发货地址'].isna()]
标题价格付款人数店铺发货地址
df[df['发货地址'].str.contains(r'杭州')]
标题价格付款人数店铺发货地址
15【百草味-经典龙腾粽1460g】蛋黄肉甜粽子特产嘉兴粽端午整箱礼盒782372人付款百草味旗舰店浙江 杭州
26知味观端午节粽子甜粽咸蛋黄大肉粽礼盒装嘉兴味鲜肉粽子散装团购64.98.5万+人付款知味观官方旗舰店浙江 杭州
53知味观龙飞粽舞端午节粽子礼盒装礼品嘉兴口味鲜肉粽子绿豆糕团购881355人付款知味观官方旗舰店浙江 杭州
71知味观风俗志端午节粽子礼盒装送礼蛋黄鲜肉粽甜粽绿豆糕礼品团购1581333人付款知味观官方旗舰店浙江 杭州
89知味观粽子新鲜大肉粽手工嘉兴口味鲜肉粽子懒人食品散装早餐速食52.97500+人付款知味观官方旗舰店浙江 杭州
..................
4355知味观粽乐乐粽子礼盒装大肉粽蛋黄鲜肉粽豆沙甜粽嘉兴口味团购79.921人付款杭州知味观浙江 杭州
4364网易严选五彩缠角粽 中国粽礼盒装 1.2千克 粽子蛋黄肉粽真空新鲜1093人付款网易严选美食馆浙江 杭州
4375妙维根板栗净素粽糙米藜麦全素粽子无糖低卡低gi代餐无油低脂饱腹11.9942人付款xutong2080浙江 杭州
4376东方贺礼端午节礼盒嘉兴粽子高汤蛋黄鲜大肉粽特产现已支持定制45_17人付款缘来有礼浙江 杭州
4397知味观家乡知味粽子礼盒装端午节礼品杭州特产鸭蛋大礼包送礼福利827人付款韩丽丽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稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购1381936人付款稻香村食品旗舰店北京
6五芳斋华礼竹篮礼盒1360g蛋粽组合端午礼品嘉兴粽子礼盒1591028人付款天猫超市上海
8真真老老嘉情礼盒10粽6蛋1.52kg/盒嘉兴粽子端午节粽子礼盒装1092117人付款天猫超市上海
9五芳斋嘉兴粽子新鲜量贩蛋黄肉粽豆沙粽悦喜散装端午特产600g*2袋59.91349人付款天猫超市上海
10真真老老粽子臻芯800g/盒*1端午节礼盒装嘉兴特产送礼751815人付款天猫超市上海
..................
4377超港端午粽子肉粽蜜枣粽大肉棕子黄山特产礼盒新鲜嘉兴粽子肉粽39.967人付款超港旗舰店安徽 黄山
4383真真老老真情粽子咸蛋礼盒嘉兴特产肉粽豆沙甜枣粽端午节团购批发79.910人付款曈宝食品专营店上海
4386臻味德嘉兴粽子竹篮礼盒装农家手工蛋黄鲜肉棕甜粽端午节伴手礼品49.082人付款气泡西柚屋浙江 温州
4393傅太粽子10只蛋黄肉粽鲜肉粽嘉兴风味肉粽子即食早餐端午团购60.246人付款love侯氏江西 萍乡
4401【粉丝专享】端午节特产新鲜蛋黄鲜肉粽豆沙嘉兴粽子800g/箱65.9149人付款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.06人付款五芳斋官方旗舰店浙江 嘉兴
1北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.08人付款天猫超市上海
2五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.9100万+人付款五芳斋官方旗舰店浙江 嘉兴较高
3稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.01936人付款稻香村食品旗舰店北京
4嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.89500+人付款城城喂食猫浙江 嘉兴
df.sort_values(by='类别',ascending=False)

标题价格付款人数店铺发货地址类别
0五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子129.006人付款五芳斋官方旗舰店浙江 嘉兴
847真真老老蛋黄肉粽140g*60个新鲜大肉粽冷冻方便早餐嘉兴粽子端午168.00139人付款tb6182109_2012上海
2773山西双合成粽子端午节送礼御粽膳坊礼盒粽叶板栗豆沙黄米杂粮粽129.0033人付款双合成旗舰店山西 晋中
2768采芝斋粽子甜粽新鲜蛋黄大肉粽嘉兴口味鲜肉粽子食品端午礼盒定制216.0047人付款采芝斋杭州专卖店浙江 杭州
2763真真老老臻瑞礼盒1.12kg/盒端午节粽子礼盒装送130g经典鲜肉粽126.002人付款天猫超市上海
.....................
3637新鲜粽叶包粽子的叶子干粽子叶大号竹子叶竹叶苇叶皮大鲜粽叶干种4.00617人付款海倪食品专营店广东 广州
2129嘉兴五芳斋粽子 真空100克*2只紫米栗蓉粽端午节甜粽子11.002897人付款五芳斋官方旗舰店浙江 嘉兴
2130三珍斋蛋黄粽200g真空100g*2只嘉兴特产粽子速食早餐7.88NaN天猫会员店上海
2131俏香阁经典鲜肉粽子120g*2只端午节嘉兴特产速食早餐点心5.90NaN天猫会员店上海
2916甜粽子蜜枣粽端午送人礼品豆沙粽红豆赤豆粽方便早餐素棕散装团购21.90230人付款集采食品专营店浙江 嘉兴

4400 rows × 6 columns

(4) 付款人数一栏有缺失值吗?若有则请利用上一问的分类结果对这些缺失 值进行合理估计并填充。

df[df.付款人数.isnull()].head()
标题价格付款人数店铺发货地址类别
183五芳斋 140g*8只大粽子 福韵端午豆沙蜜枣蛋黄粽新包装送礼礼盒50.9NaN天猫会员店上海
243五芳斋福雅五芳粽子礼盒端午咸甜粽子绿豆糕咸鸭蛋送礼79.9NaN天猫会员店上海较高
347【百草味】龙腾粽1090g 早餐大肉粽子湖州特产嘉兴粽39.9NaN天猫会员店上海
386五芳斋华礼竹篮礼盒1360g蛋粽组合端午礼品嘉兴粽子礼盒129.0NaN天猫会员店上海
389百草味 龙腾粽礼盒1460g 10只装早餐大肉粽子湖州特产嘉兴49.9NaN天猫会员店上海
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
2100
112.0
1470
268.5
3610
......
13331.0
16461.5
17567.0
31551.5
34682.0

65 rows × 1 columns

s12=s12.astype('float')*10000
s12.head()
0
21000000.0
1120000.0
14700000.0
2685000.0
36100000.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
06.0
18.0
31936.0
49500.0
517.0
df2=df[df.付款人数.notna()][['类别','付款人数']].copy()
df2.update(s) # 使用处理后的付款人数更新非缺失值
# df2.info()#sort_values(by='付款人数')#.iloc[s42.index,:]
df2
类别付款人数
06人付款
18人付款
2较高100万+人付款
31936人付款
49500+人付款
.........
4398347人付款
4399较高80人付款
4400较高5人付款
4401较高149人付款
4402较高20人付款

4329 rows × 2 columns

df2
类别付款人数
06人付款
18人付款
2较高100万+人付款
31936人付款
49500+人付款
.........
4398347人付款
4399较高80人付款
4400较高5人付款
4401较高149人付款
4402较高20人付款

4329 rows × 2 columns

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值