【学习打卡】Pandas学习第十章:综合练习

    技术2022-07-11  87

    综合练习

    端午节的淘宝粽子交易问题

    端午节的淘宝粽子交易

    问题

    (1)请删除最后一列为缺失值的行,并求所有在杭州发货的商品单价均值。 (2)商品标题带有“嘉兴”但发货地却不在嘉兴的商品有多少条记录? (3)请按照分位数将价格分为“高、较高、中、较低、低”5个类别,再将类别结果插入到标题一列之后,最后对类别列进行降序排序。 (4)付款人数一栏有缺失值吗?若有则请利用上一问的分类结果对这些缺失值进行合理估计并填充。 (5)请将数据后四列合并为如下格式的Series:商品发货地为xx,店铺为xx,共计x×人付款,单价为xx。 (6)请将上一问中的结果恢复成原来的四列。 df = pd.read_csv('data/端午粽子数据.csv') df.head()

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

    # 查看列名发现有空格,去掉列名的空格 df.columns = [col.strip() for col in df.columns] # strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 df.columns

    df1 = df[df.发货地址.notnull()] df1

    df2 = df1[df1.发货地址.str.contains('杭州')] df2

    df2.价格.str.replace('_','').astype('float').mean() # str.replace() https://www.cnblogs.com/P--K/p/11148250.html

    (2)商品标题带有“嘉兴”但发货地却不在嘉兴的商品有多少条记录?

    df[df.标题.str.contains('嘉兴')][(df.发货地址.str.contains('嘉兴'))==False]

    (3)请按照分位数将价格分为“高、较高、中、较低、低”5个类别,再将类别结果插入到标题一列之后,最后对类别列进行降序排序。

    df.价格.iloc[[538,4376]]=[45.9,45] df.价格 = df.价格.astype('float') df['类别'] = pd.qcut(df.价格,[0,0.2,0.4,0.6,0.8,1.],labels= ['低', '较低', '中', '较高', '高']) df3 = df.reindex(columns= ['标题', '类别', '价格', '付款人数', '店铺','发货地址']).sort_values('类别',ascending=False) df3

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

    df[df['付款人数'].isna()]

    填充缺失值

    (5)请将数据后四列合并为如下格式的Series:商品发货地为xx,店铺为xx,共计x×人付款,单价为xx。

    '商品发货地为:' + df.发货地址 + ',店铺为:' + df.店铺 + ',共计' + df.付款人数 + ',单价为:' + df.价格.astype('str')

    6 请将上一问中的结果恢复成原来的四列。
    Processed: 0.012, SQL: 9