python - 重新命名 Columns Pandas
问题描述
嗨,我创建了一个基于 groupby、mean 和 count 的新数据框,如下所示:
suburb_price = HH.groupby(['Suburb']).agg({'Price':['mean'],
'Suburb':['count']})
|Suburb |Price |Suburb
|mean |count
|0 |Austins Ferry |585,000 | 1
|1 |Battery Point |700,000 | 1
|2 |Bellerive |498,571 | 7
|3 |Berriedale |465,800 | 5
|4 |Blackmans Bay |625,000 | 1
我想通过使用更改列的名称
suburb_price.reset_index(level=0,inplace=True)
suburb_price.rename(index={0:'Suburb Name',1:'Average Price',2:'Number of Properties'})
但它似乎不起作用,不知道为什么
解决方案
如果使用列的长度按范围重命名列并传递给rename
参数,则您的解决方案应该可以工作columns
:
suburb_price.reset_index(inplace=True)
suburb_price.columns = range(len(suburb_price.columns))
suburb_price = suburb_price.rename(columns={0:'Suburb Name',1:'Average Price',2:'Number of Properties'})
更简单的是按列表设置列名:
suburb_price.reset_index(inplace=True)
suburb_price.columns = ['Suburb Name','Average Price','Number of Properties']
另一个想法是使用GroupBy.agg
命名聚合和重命名列Suburb
:
test1 = [[0,7,50], [0,3,51], [0,3,45], [1,5,50],[1,0,50],[2,6,50]]
HH = pd.DataFrame({'Suburb':list('aaabbc'), 'Price':[5,10,20,2,45,3]})
print (HH)
Suburb Price
0 a 5
1 a 10
2 a 20
3 b 2
4 b 45
5 c 3
suburb_price = (HH.groupby(['Suburb'])
.agg(**{'Average Price': ('Price', 'mean'),
'Number of Properties': ('Suburb', 'count')})
.reset_index()
.rename(columns={'Suburb':'Suburb Name'}))
print (suburb_price)
Suburb Name Average Price Number of Properties
0 a 11.666667 3
1 b 23.500000 2
2 c 3.000000 1
推荐阅读
- sql - 如何通过加入 ALL_TAB_COLS 将以下查询的输出限制为数据类型数字/整数?- 甲骨文 SQL
- mysql - 如何获取具有特定 ID 的表中的最后一个条目
- node.js - 如何(自动)列出到 Swagger UI 的所有路由(swagger-ui-express)
- elasticsearch - 数组elasticsearch数组内的聚合值
- mysql - 缓慢的 WordPress 默认查询
- java - 遍历一个字符串并使用 .equals (Java) 将结果与另一个字符串进行比较
- python - 在代理后面使用 pipenv
- sockets - 从 vuex 创建套接字实例
- azure-cosmosdb - 替换 CosmosDB 中的有子句
- javascript - 如何使用 HTML 中的 onclick 按钮调用绘图图表?