问题1
(1) 请删除最后一列为缺失值的行,并求所有在杭州发货的商品单价均值.
xt1 = pd.read_csv(’.\端午粽子数据.csv’).convert_dtypes()
xt1.columns = xt1.columns.str.strip()
读取数据后取出列名中的空格
def is_number(x):
try:
float(x)
return True
except (SyntaxError, ValueError) as e:
return False
xt1[~xt1[‘价格’].map(is_number)]
通过该方法找出异常的价格, 然后修改
xt1.loc[[538,4376],‘价格’] = [‘45.9’, ‘45’]
xt1[‘价格’] = xt1[‘价格’].astype(‘float’)
xt1[xt1[‘发货地址’].str.contains(‘杭州’)][‘价格’].mean()
得到均价80.90
但实际上是否应该把付款人数列改成数值, 再算加权平均?
(2) 商品标题带有“嘉兴”但发货地却不在嘉兴的商品有多少条记录?
l = xt1[xt1[‘标题’].str.contains(‘嘉兴’)][‘发货地址’].str.contains(‘嘉兴’)
l[l == False].count()
有1032条记录
(3) 请按照分位数将价格分为“高、较高、中、较低、低”5 个类别,再将 类别结果插入到标题一列之后,最后对类别列进行降序排序。
price_cut = xt1[‘价格’].quantile([0,0.2,0.4,0.6,0.8,1])
price_cut = price_cut.values
不确定缺个的左右开合, 保险起见, 扩大范围
price_cut[0] = 0
price_cut[5] = 9999
xt1.insert(loc = 1, column = ‘价格段’, value = pd.cut(xt1[‘价格’], price_cut, labels = [‘低’,‘较低’,‘中’,‘较高’,‘高’]))
后面时间不够,未完待续…
(4) 付款人数一栏有缺失值吗?若有则请利用上一问的分类结果对这些缺失 值进行合理估计并填充。
(5) 请将数据后四列合并为如下格式的 Series:商品发货地为 ××,店铺为 ××,共计 ×× 人付款,单价为 ××。
(6) 请将上一问中的结果恢复成原来的四列。