Python 用杂乱的数据替换列中的某些值

Python 用杂乱的数据替换列中的某些值,python,pandas,Python,Pandas,我有一个非常长的数据集,存储为数据帧。我正在看的专栏叫做“国家”。本专栏中有不少国家。问题是我想把各种各样的值改成“USA”。 我试图改变的价值观是 美国 美国 美国 等 有太多的变体和打字错误(超过100个)让我无法通过。有没有更简单的方法来更改这些值?由于数据集中还有其他国家,我不能将所有值都更改为USA您可以做的一件事是坚持每个单词的第一个字母。对于所有实例,第一个字母是U,第二部分(如果拆分整个字符串)是S。在这里,我使用的是正则表达式包,通常在处理文本时使用 Import re

我有一个非常长的数据集,存储为数据帧。我正在看的专栏叫做“国家”。本专栏中有不少国家。问题是我想把各种各样的值改成“USA”。 我试图改变的价值观是 美国 美国 美国 等
有太多的变体和打字错误(超过100个)让我无法通过。有没有更简单的方法来更改这些值?由于数据集中还有其他国家,我不能将所有值都更改为USA

您可以做的一件事是坚持每个单词的第一个字母。对于所有实例,第一个字母是
U
,第二部分(如果拆分整个字符串)是
S
。在这里,我使用的是正则表达式包,通常在处理文本时使用

Import re   
Split_parts = [re.split(r'[^A-Z,^a-z]', i) for i in df['country']]
上面的代码行基于任何非字母字符(例如句点、逗号、分号等)拆分字符串。 拆分后,您可以创建一个for循环,如果第一个字符分别是U和S,则该循环将生成
True
False
元素

value= []
for i in Split_parts:
    if i[0][0] in ['u','U'] and  i[1][0] in ['s','S']:
        value.append(True)
    else:
        value.append(False)
之后,您可以根据需要(即美国)替换字符串:


世界上唯一一个单词的首字母分别是U和S的国家是美国。这里的解决方案并不能解决你可能面临的所有问题。对于每一个,你必须寻找差异

包括一个你尝试过模糊模糊匹配吗?我会开始尝试匹配美国,美国,美国和地图这些价值观到美国,或任何你有。
for i in range(len(value)):
    if value[i]==True:
        df['country'][i]='USA'