Python Pandas表示另一列中的子集在列中

Python Pandas表示另一列中的子集在列中,python,database,pandas,Python,Database,Pandas,我有一个叫做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

我有一个叫做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()实现的
但这并没有返回销售价格
有什么想法吗?

您可以先将
转换为空字符串,然后将列
销售价格
转换为空字符串。最后一次转换为
字符串
,根据需要将
添加到
销售价格列

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
您可以先将
转换为空字符串,然后将列
销售价格
转换为空字符串。最后一次转换为
字符串
,根据需要将
添加到
销售价格列

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

首先,您需要清理
sale\u price
列并将其转换为数字数据类型…首先,您需要清理
sale\u price
列并将其转换为数字数据类型。。。