Python Pandas表示另一列中的子集在列中
我有一个叫做houses的数据框: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
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
列并将其转换为数字数据类型。。。