我有一个df,它有一个城市名称列和一个带有CRASS(整数)列,其中城市列有正确的拼写,但每个都有拼写错误。我创建了每个城市的正确拼写列表,并试图过滤掉拼写错误的行。但到目前为止,我尝试的代码并没有过滤出拼写错误的行。我对如何做到这一点的搜索导致了使用ISIN。
以下是我的城市名单中的一部分:
city_list = [('Aberdeen', 'Ahoskie', 'Alamance', 'Albermarle',...
以下是一些尝试:
df = df[~df['city'].isin(city_list)]
df = df[df['city'].apply(lambda x: tuple([y.lower() for y in x])).isin(city_list)]
df = df[np.isin(df['city'], city_list)]
所以我想把‘Aberdee’去掉,保留‘Aberdeen’作为例子:
city crash_1
915 ABERDEE 1
97 ABERDEEN 587
916 ABSHERS 1
917 ACME 1
非常感谢您的任何帮助。
2条答案
按热度按时间5kgi1eie1#
唯一需要处理的是城市元组的列表。如果您不想保留元组,可以在将字符串大写的同时将其删除。
qcuzuvrc2#
您只需考虑城市名称的大小写(UPER.LOWER,CAPILIZE):
如果您的列表不是平坦的,并且您实际上有元组列表,则首先按如下方式展开列表: