python - 如何创建一个填充有最小值和最大值的新 DataFrame?
问题描述
我有以下数据集...
https://drive.google.com/open?id=1PpI6PlO8ox2vKfM4aGmEUexCPPWa59S_
如何创建一个新的 DataFrame,其中第一列是唯一的社区名称,接下来的两列填充每个社区的最低和最高价格?
解决方案
您可以按主机分组并获得最大值和最小值,如下所示:
>>> data = pd.read_csv('dumbbell_data.csv')
>>> pd.DataFrame([[value.maxPrice.max(), value.minPrice.min(), key] for key, value in data.groupby('neighbourhood_hosts')], columns=data.columns)
maxPrice minPrice neighbourhood_hosts
0 45 45 Bloomsbury
1 247 117 Canonbury
2 112 72 Chelsea
3 160 29 LB of Barnet
4 80 72 LB of Hackney
5 321 58 Shepherd's Bush
6 72 55 Shoreditch
7 115 72 Wapping
8 120 58 Wimbledon
一种更 Pythonic 的方式是使用agg
函数:
>>> data.sort_values(by='neighbourhood_hosts').groupby('neighbourhood_hosts').agg({'maxPrice': max, 'minPrice':min})
maxPrice minPrice
neighbourhood_hosts
Bloomsbury 45 45
Canonbury 247 117
Chelsea 112 72
LB of Barnet 160 29
LB of Hackney 80 72
Shepherd's Bush 321 58
Shoreditch 72 55
Wapping 115 72
Wimbledon 120 58
推荐阅读
- javascript - 省略分号时出错 - 有人可以解释为什么吗?
- python - 从 PHP 执行 Python 脚本并插入 mysql
- python - 使用 concurrent.futures 进行并行处理
- php - 引用另一个文件时包含路径不起作用
- excel - 变量不会转换为整数
- vue.js - Vuejs 动态更新与 v-for 一起使用的值
- javascript - 没有从 Redux 中的子组件获取道具
- sql - SQL Server - 位列的所有可能组合
- python - 无法在pycharm上安装lxml
- hibernate - MessageProcessor 在处理时丢失值 -> InvalidInputException: Duplicate key, Movie Id: 333, Review Id:0