端午节淘宝粽子交易

    技术2022-07-12  77

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

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

    问题 (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人付款贵州原产地商品官方旗舰店NaN2418素缤纷粽子140g*6入袋装净素素食纯素蔬食素粽早餐点心端午送礼49.440人付款素缤纷精致素食自助式餐厅NaN2716辰颐物语热销嘉兴私房粽子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 02100112.01470268.53610......13331.016461.517567.031551.534682.0

    65 rows × 1 columns

    s12=s12.astype('float')*10000 s12.head() 021000000.01120000.014700000.02685000.036100000.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() 006.018.031936.049500.0517.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')
    Processed: 0.014, SQL: 9