(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) 请将上一问中的结果恢复成原来的四列。