如何使用Pandas按place_name分组计算数据集koopprijs平均值
实现步骤与代码
注意你提供的数据集里koopprijs字段是字符串格式,需要先转换为数值类型才能进行平均值计算,完整代码如下:
import pandas as pd # 数据集构建代码 df = pd.DataFrame({'globalid': {0: '4388064', 1: '4388200', 2: '4399344', 3: '4400638', 4: '4401765', 5: '4401831', 6: '4402098', 7: '4406997', 8: '4407331', 9: '4417043', 10: '4437380', 11: '4442467', 12: '4401955', 13: '4425140', 14: '4426164', 15: '4405473', 16: '4411249', 17: '4388584', 18: '4400483', 19: '4433927', 20: '4413441', 21: '4436355', 22: '4443361', 23: '4443375', 24: '4388176'}, 'postcode': {0: '1774PG', 1: '7481LK', 2: '1068MS', 3: '5628EN', 4: '7731TV', 5: '5971CR', 6: '9571BM', 7: '1031KA', 8: '9076BK', 9: '4465AL', 10: '1096AC', 11: '3601', 12: '2563PT', 13: '2341HN', 14: '2553DM', 15: '2403EM', 16: '1051AN', 17: '4525AB', 18: '4542BA', 19: '1096AC', 20: '5508AE', 21: '1096AC', 22: '3543GC', 23: '4105TA', 24: '7742EH'}, 'koopprijs': {0: '139000', 1: '209000', 2: '267500', 3: '349000', 4: '495000', 5: '162500', 6: '217500', 7: '655000', 8: '180000', 9: '495000', 10: '2395000', 11: '355000', 12: '150000', 13: '167500', 14: '710000', 15: '275000', 16: '498000', 17: '324500', 18: '174500', 19: '610000', 20: '300000', 21: '2230000', 22: '749000', 23: '504475', 24: '239000'}, 'place_name': {0: 'Slootdorp', 1: 'Haaksbergen', 2: 'Amsterdam', 3: 'Eindhoven', 4: 'Ommen', 5: 'Grubbenvorst', 6: '2e Exloërmond', 7: 'Amsterdam', 8: 'St.-Annaparochie', 9: 'Goes', 10: 'Amsterdam', 11: 'Maarssen', 12: "'s-Gravenhage", 13: 'Oegstgeest', 14: "'s-Gravenhage", 15: 'Alphen aan den Rijn', 16: 'Amsterdam', 17: 'Retranchement', 18: 'Hoek', 19: 'Amsterdam', 20: 'Veldhoven', 21: 'Amsterdam', 22: 'Utrecht', 23: 'Culemborg', 24: 'Coevorden'}}) # 第一步:将koopprijs从字符串转换为整数格式 df['koopprijs'] = df['koopprijs'].astype(int) # 第二步:按place_name分组,计算koopprijs的平均值,可按需加round(2)保留两位小数 avg_price_by_place = df.groupby('place_name')['koopprijs'].mean().reset_index() # 重命名列更易读 avg_price_by_place.columns = ['地名', '平均要价'] # 输出结果 print(avg_price_by_place)
计算逻辑说明
- 数据类型转换:原数据里的要价是字符串格式,无法直接做数学运算,所以先转成整数类型
- 分组聚合:用
groupby方法按照place_name字段把相同地名的行归为一组 - 平均值计算:对每个分组内的所有
koopprijs数值求和,再除以该分组的行数,得到对应地名的平均要价
内容的提问来源于stack exchange,提问作者user17403003
相关产品推荐
相关产品推荐

