一、端午节的淘宝粽子交易(参考大佬的)
(1) 请删除最后一列为缺失值的行,并求所有在杭州发货的商品单价均值。
import pandas as pd
data = pd.read_csv("端午粽子数据.csv")
# (1) 请删除最后一列为缺失值的行,并求所有在杭州发货的商品单价均值。
data.columns = data.columns.str.strip()
data = data.dropna(subset=['发货地址'])
py =data[data['发货地址'].str.contains("杭州")]
py.loc[~py['价格'].str.match(r'^\d+\.?\d+$')] #用正则表达式否定得出
import numpy as np
py.loc[4376, '价格'] = 45
mean =py['价格'].astype('float').mean()
(2) 商品标题带有“嘉兴”但发货地却不在嘉兴的商品有多少条记录?
#(2) 商品标题带有“嘉兴”但发货地却不在嘉兴的商品有多少条记录?
jx = data.loc[data["标题"].str.contains("嘉兴")]
jx.loc[~jx["发货地址"].str.contains("嘉兴")].shape[0]
(3) 请按照分位数将价格分为“高、较高、中、较低、低”5 个类别,再将
类别结果插入到标题一列之后,最后对类别列进行降序排序。
#(3) 请按照分位数将价格分为“高、较高、中、较低、低”5 个类别,再将类别结果插入到标题一列之后,最后对类别列进行降序排序。
data.loc[~data['价格'].str.match(r'^\d+\.?\d+$')]
data.loc[[538, 4376], '价格'] = [45.9, 45]
data['价格'] = data['价格'].astype('float')
# 按照百分位数分组
data['价位'] = pd.cut(data['价格'], bins=np.percentile(data['价格'], [0, 20, 40, 60, 80, 100]), labels=['低', '较低', '中', '较高', '高'])
l=cols = list(data.columns)#列名称列表
cols.remove('价位') #删除原列名
cols.insert(1, '价位') #添加新列名
data = data[cols]
data.sort_values('价位', ascending=False) #排序
(4) 付款人数一栏有缺失值吗?若有则请利用上一问的分类结果对这些缺失
值进行合理估计并填充。
(5) 请将数据后四列合并为如下格式的 Series:商品发货地为 ××,店铺为
××,共计 ×× 人付款,单价为 ××。
(6) 请将上一问中的结果恢复成原来的四列。