Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 检查数据帧中的行是否大致对应_Python 3.x_Dataframe_Nlp - Fatal编程技术网

Python 3.x 检查数据帧中的行是否大致对应

Python 3.x 检查数据帧中的行是否大致对应,python-3.x,dataframe,nlp,Python 3.x,Dataframe,Nlp,我有一个数据框,其中有摩洛哥的城市名称,还有一个有类似名称,但编码不好。这是第一个: >>> df[['new_regiononame']].head() new_regiononame 0 Grand Casablanca-Settat 1 Fès-Meknès 2 Souss-Massa 3 Laayoune-Sakia El Hamra 4 Fès-Meknès 这是另一个,我想换成第一个的名字。至少他们知道正确阅读的方法: >>

我有一个数据框,其中有摩洛哥的城市名称,还有一个有类似名称,但编码不好。这是第一个:

>>> df[['new_regiononame']].head()

    new_regiononame
0   Grand Casablanca-Settat
1   Fès-Meknès
2   Souss-Massa
3   Laayoune-Sakia El Hamra
4   Fès-Meknès
这是另一个,我想换成第一个的名字。至少他们知道正确阅读的方法:

>>>X_train[['S02Q03A_Region']].head()

    S02Q03A_Region
10918   Fès-Meknès
1892    Rabat-Salé-Kénitra
6671    Casablanca-Settat
4837    Marrakech-Safi
6767    Casablanca-Settat
我如何检查数据帧中的行是否大致相互对应,如果是这样,如何将
X_train
行重命名为
df

到目前为止,我只知道如何提取
X_train
中哪些行在
df
中具有精确的等价项:

X_train['S02Q03A_Region'][X_train['S02Q03A_Region'].isin(df['new_regiononame'].unique())]
他们可以在这里完成任务

Levenshtein距离通过计算将一个单词转换为另一个单词所需的单字符编辑数,为您提供两个单词之间的距离。您可以将一个数据帧列与另一个数据帧列进行比较,从而建立一个合理的阈值,例如:

  • 如果它以相同的字符(?)开头
  • 如果 城市名称的长度仅相隔
    x
    个字符
  • 如果Levenshtein距离小于
    y
  • 等等等等

    计算Levenshtein距离的代码为:

    import nltk
    nltk.edit_distance("Fès-Meknès", "Fès-Meknès")
    
    输出:

    4
    

    问题:通过重命名行,您的意思是
    X_train
    中列出的城市名称与
    df
    中列出的城市名称不完全相同,但有很大的相似性吗?例如:
    df
    中的
    Fès-Mekn¨s
    对应于
    Xèu列车
    ?@RahulP
    Fès-Meknès
    中的
    FÃs-Mekn¨s
    ,但确实如此