Python 如何从数据集中的行中删除某些单词-Pandas

Python 如何从数据集中的行中删除某些单词-Pandas,python,pandas,replace,dataset,Python,Pandas,Replace,Dataset,在我的数据集中,有一个名为AdminRegion2的列,它有数千个不同的值,每个值位于不同的行中,它们都是美国的县。我需要从每个县名称中删除某些单词,以便将数据集链接到GeoJSON文件 有些县在“自治区、普查区或县”之后写上了这些词。我需要从每一行中删除可能包含其中任何一行的所有三个单词。所以这只是“鲍德温” 这是人口普查区的代码,我很累,但所有在最后有人口普查区的县仍然有它。我不知道为什么它不起作用 only_counties = usa_only[usa_only['AdminRegio

在我的数据集中,有一个名为AdminRegion2的列,它有数千个不同的值,每个值位于不同的行中,它们都是美国的县。我需要从每个县名称中删除某些单词,以便将数据集链接到GeoJSON文件

有些县在“自治区、普查区或县”之后写上了这些词。我需要从每一行中删除可能包含其中任何一行的所有三个单词。所以这只是“鲍德温”

这是人口普查区的代码,我很累,但所有在最后有人口普查区的县仍然有它。我不知道为什么它不起作用

only_counties = usa_only[usa_only['AdminRegion2'].str.contains("", na = False)]
only_counties = only_counties['AdminRegion2'].str.strip().str.replace("Census Area", '')
only_counties.to_csv("counties_only.csv")
试试这个:

usa_only['AdminRegion2']=usa_only['AdminRegion2'].apply(lambda x: x.replace(' Borough', '').replace(' Census Area', '').replace(' County', ''))
试试这个:

usa_only['AdminRegion2']=usa_only['AdminRegion2'].apply(lambda x: x.replace(' Borough', '').replace(' Census Area', '').replace(' County', ''))
我将使用:

only_counties = usa_only[usa_only['AdminRegion2'].str.contains("", na = False)].copy() # now only_counties is a sliced copy of usa_only, not a view

only_counties['AdminRegion2'] = only_counties['AdminRegion2'].str.replace(' County', '')
only_counties['AdminRegion2'] = only_counties['AdminRegion2'].str.replace(' Census Area', '')
only_counties['AdminRegion2'] = only_counties['AdminRegion2'].str.replace(' Borough', '')
这应该可以实现我将使用的技巧:

only_counties = usa_only[usa_only['AdminRegion2'].str.contains("", na = False)].copy() # now only_counties is a sliced copy of usa_only, not a view

only_counties['AdminRegion2'] = only_counties['AdminRegion2'].str.replace(' County', '')
only_counties['AdminRegion2'] = only_counties['AdminRegion2'].str.replace(' Census Area', '')
only_counties['AdminRegion2'] = only_counties['AdminRegion2'].str.replace(' Borough', '')


这应该可以解决问题

你想用
only_countries=usa_only[usa_only['AdminRegion2'].str.contains(“,na=False)]实现什么目标
?我试图让数据集只显示县数据。因为它包含州和县级别的数据。那行代码行得通。如果没有看到州一级的样本,我就无法真正理解它,但我已将我的答案更改为只处理_县的数据。给了我一个错误,我在你的答案下发布了错误。请参见下文。我希望通过
only_countries=usa_only[usa_only['AdminRegion2'].str.contains(“,na=False)]
,您想要得到什么帮助?我试图让数据集只显示县数据。因为它包含州和县级别的数据。那行代码行得通。如果没有看到州一级的样本,我就无法真正理解它,但我已将我的答案更改为只处理_县的数据。给了我一个错误,我在你的答案下发布了错误。请参见下文。我希望那个助手再次出错,我不明白为什么。usa_only['AdminRegion2']=usa_only['AdminRegion2'].apply(lambda x:x.replace('Borough','').replace('Census Area','').replace('County','')AttributeError:'float'对象没有属性'replace'映射=lib.map_推断(值,f,convert=convert_dtype)你能确认“AdminRegion2”列只包含文本中的区域(没有数字值吗)?是的,绝对只包含字符串错误,我不明白为什么。usa_only['AdminRegion2']=usa_only['AdminRegion2']。应用(lambda x:x.replace('Borough','')。replace('Census Area','')。replace('Census Area','')。replace('County','))AttributeError:“float”对象没有属性“replace”mapped=lib.map\u infere(值,f,convert=convert\u dtype)能否确认列“AdminRegion2”仅包含文本中的区域(无数值)?是的,肯定只有stringsA值正试图在数据帧切片的副本上设置。尝试使用.loc[row\u indexer,col\u indexer]=value代替headah,是的。切片可以产生这样的结果。试着只为
制作切片的
.copy()
。现在
only_countries
usa_only
的筛选副本,而不是筛选视图。试图在数据帧切片的副本上设置值。尝试使用.loc[row\u indexer,col\u indexer]=value代替headah,是的。切片可以产生这样的结果。试着只为
制作切片的
.copy()
。现在
only_countries
usa_only
的过滤副本,而不是过滤视图。