有一个叫做数据的pd数据库:
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
7 8 5 31 Mar 2016 £420,000 True
另一个叫做房子:
id address postcode postcode first
0 1 Flat 78, Andrewes House, Barbican, London, Gre... EC2Y 8AY EC2Y
1 2 Flat 35, John Trundle Court, Barbican, London,... EC2Y 8DJ EC2Y
问题是如何在数据中添加一个名为“postcode\u first”的列,在其中查找数据['house\u id'],并将邮政编码的第一部分添加到数据['postcode\u first']中的每一行?
最接近的是
data['postcode'] = np.where(houses['id'] == data['house_id'])
但这一点意义都没有
有人帮忙吗?
编辑
也试过了
data['postcode'] = houses.loc[houses['id'] == data['house_id']]['postcode_first']
但这又回来了
Traceback (most recent call last):
File "/Users/saminahbab/Documents/House_Prices/final project/sql_functions.py", line 30, in <module>
data['postcode'] = houses.loc[houses['id'] == data['house_id']]['postcode_first']
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pandas/core/ops.py", line 735, in wrapper
raise ValueError('Series lengths must match to compare')
ValueError: Series lengths must match to compare
这不重要,因为我想说的是data['postcode'] equals houses['postcode_first'] WHERE houses['id'] equals data['house_id']
可以使用map()方法:
数据:
相关问题 更多 >
编程相关推荐