重命名列熊猫

澳元

嗨,我已经基于groupby,平均值和计数创建了一个新的数据框,如下所示:

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'})

Simplier通过列表设置列名称:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章