如果另一列位于Python的另一列中,则放置来自另一数据框的值

时间:2019-07-02 07:50:09

标签: python pandas dataframe

说我有一个数据框A,如下所示:

id        full_name
1           ABC Ltd.
2           NY BCD Ltd.
3           SH ZY Ltd.
4           Soho Company

另一个数据框B

name                     id
 ABC
 NY BCD
 SH ZY
 Soho

如果name中的Bfull_name中,则II想将id的值从数据帧Aid的位置B。 如何在Python中做到这一点?谢谢。

1 个答案:

答案 0 :(得分:1)

如何通过模糊查找实现这种灵魂?

import pandas as pd
import difflib 
df1 = pd.DataFrame({"id": [1, 2, 3, 4], "full_name": ["ABC Ltd.", "NY BCD Ltd.", "SH ZY Ltd.", "Soho Company"]})

df2 = pd.DataFrame({"name": ["ABC", "SH ZY", "NY BCD", "Soho"]})

df2["full_name"] = df2["name"].map(lambda x: difflib.get_close_matches(x, df1["full_name"], cutoff=0.5)[0])

df2 = pd.merge(df2, df1, how="left", on="full_name")

查找将查找紧密匹配项并返回第一个值,仅当至少50%的字符串匹配时才给出mathc。

df2的end_result看起来像这样:

     name     full_name  id
0     ABC      ABC Ltd.   1
1   SH ZY    SH ZY Ltd.   3
2  NY BCD   NY BCD Ltd.   2
3    Soho  Soho Company   4