当前位置: 首页 > 知识库问答 >
问题:

为什么我得到这个错误关键字:区

都才俊
2023-03-14

我是Python的初学者。我合并了两个列在之后,我试图用另一个列值更改一个列的'未分配'值。我不能那样做。如果我使用预修改的数据框,那么我可以更改。

我从页面上抓取了一个表,然后修改了数据框中的数据。

import pandas as pd
import numpy as np
import requests

pip安装lxml

toronto_url='https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M'

toronto_df1= pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]

toronto_df1.head()

toronto_df1.drop(toronto_df1.loc[toronto_df1['Borough']=="Not assigned"].index, inplace=True)

toronto_df2=toronto_df1.groupby(['Postcode','Borough'],sort=False).agg(lambda x: ','.join(x))

toronto_df2.loc[toronto_df2['Neighbourhood'] == "Not assigned", 'Neighbourhood'] = toronto_df2['Borough']

这是我使用的代码。

我希望将邻域值更改为自治区值。

我得到了这个错误。

KeyError回溯(最近一次调用上次)/usr/local/lib/python3。6/数据包/熊猫/核心/索引/基础。py in get_loc(自身、键、方法、公差)2656尝试:-

熊猫/_libs/索引。大熊猫中的pyx_图书馆。指数IndexEngine。获取_loc()

熊猫/_libs/索引。大熊猫中的pyx_图书馆。指数IndexEngine。获取_loc()

pandas/_libs/hashtable_class_helper。熊猫体内的pxi_图书馆。哈希表。PyObjectHashTable。获取_项()

pandas/_libs/hashtable_class_helper。熊猫体内的pxi_图书馆。哈希表。PyObjectHashTable。获取_项()

KeyError:“自治区”

在处理上述异常期间,发生了另一个异常:

KeyError回溯(最近一次调用上次)9帧/usr/local/lib/python3。6/数据包/熊猫/核心/索引/基础。py在get_loc(自身、键、方法、公差)2657返回自身_发动机获取位置(键)2658,键错误除外:-

熊猫/_libs/索引。大熊猫中的pyx_图书馆。指数IndexEngine。获取_loc()

熊猫/_libs/索引。大熊猫中的pyx_图书馆。指数IndexEngine。获取_loc()

pandas/_libs/hashtable_class_helper。熊猫体内的pxi_图书馆。哈希表。PyObjectHashTable。获取_项()

pandas/_libs/hashtable_class_helper。熊猫体内的pxi_图书馆。哈希表。PyObjectHashTable。获取_项()

KeyError:“自治区”

共有1个答案

有宏邈
2023-03-14

您的keyerror的原因是neighbour不是列,而是索引级别,解决方案是添加reset\u索引

toronto_df1= pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]

#boolean indexing        
toronto_df1 = toronto_df1.loc[toronto_df1['Borough']!="Not assigned"]
toronto_df2 = toronto_df1.groupby(['Postcode','Borough'],sort=False)['Neighbourhood'].agg(','.join).reset_index()
toronto_df2.loc[toronto_df2['Neighbourhood'] == "Not assigned", 'Neighbourhood'] = toronto_df2['Borough']

或参数as_index=FalsetoGroupby

toronto_df1= pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]

#boolean indexing  
toronto_df1 = toronto_df1.loc[toronto_df1['Borough']!="Not assigned"]
toronto_df2=toronto_df1.groupby(['Postcode','Borough'],sort=False, as_index=False)['Neighbourhood'].agg(','.join)
toronto_df2.loc[toronto_df2['Neighbourhood'] == "Not assigned", 'Neighbourhood'] = toronto_df2['Borough']
 类似资料: