对于另一列中的子集,Pandas表示在列中

2024-09-30 06:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个叫做houses的数据框:

         transaction_id  house_id    date_sale  sale_price boolean_2015  \
    0                     1         1  31 Mar 2016    £880,000         True   
    3                     4         2  31 Mar 2016    £450,000         True   
    4                     5         3  31 Mar 2016    £680,000         True   
    6                     7         4  31 Mar 2016  £1,850,000         True  
               postcode  
    0           EC2Y  
    3           EC2Y  
    4           EC1Y  
    6           EC2Y  

我想知道如何根据每个邮政编码计算平均售价 所以输出是

           Average
0 EC1Y     £123220
1 EC2Y     £434930

我是用averages = data.groupby(['postcode'], as_index=False).mean()做的 但这并没有返回售价 有什么想法吗?你知道吗


Tags: 数据idtruedatesalepricemarhouse
1条回答
网友
1楼 · 发布于 2024-09-30 06:27:28

您可以先将^{}£,转换为空字符串,然后将^{}sale_price转换为空字符串。最后一次由^{}强制转换到string如果需要,请将£添加到sale_price列:

data.sale_price = pd.to_numeric(data.sale_price.str.replace('[£,]',''))
averages = data.groupby(['postcode'], as_index=False)['sale_price'].mean()
averages.sale_price = '£' + averages.sale_price.astype(str) 
print (averages)
  postcode sale_price
0     EC1Y    £680000
1     EC2Y   £1060000

相关问题 更多 >

    热门问题