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

端午节的淘宝粽子交易

问题

(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 请将上一问中的结果恢复成原来的四列。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值