大熊猫与部分字符串匹配和条件合并

时间:2020-05-26 15:13:32

标签: python pandas merge conditional-statements string-matching

问题

我有两个<html>形状为df1(1597, 37)形状为df2的数据框。它们都包含名称,邮政编码和一些公司的其他数据。名称不完全匹配。

逐步合并它们的手动方法是:

  1. 按邮政编码过滤
  2. 检查(27293, 115)df1中的公司名称以查找匹配的名称,并从df2中删除已经在df2中的公司。
  3. 将新公司从df1添加到df2
  4. 最终数据库为df1,其中包含来自df1的新公司。

如果名称匹配,但邮政编码不同,则我们假设这是一家不同的公司,并保留该公司。

示例:

df2

所需的输出:

df1 = pd.DataFrame({'NAME': ['Company A', 'Company B', 'Company C', 'Company D'], 
                    'Postal Code': [9001, 9002, 9003, 9004]})    
df2 = pd.DataFrame({'Name': ['this is b', 'some company d', 'c is a company', 
                             'COMANY f', 'COMANY x', 'Company z','w company'], 
                    'CP': [9002, 9006, 9003, 9005, 9001, 9007, 9008],
                    'Some other data': np.random.randn(7)})

df1



    NAME        Postal Code  
0   Company A   9001         
1   Company B   9002         
2   Company C   9003         
3   Company D   9004         

df2


    Name            CP      Some other data
0   this is b       9002    1.867558
1   some company d  9006    -0.977278
2   c is a company  9003    0.950088
3   COMANY f        9005    -0.151357
4   COMANY x        9001    -0.103219
5   Company z       9007    0.410599
6   w company       9008    0.144044

0 个答案:

没有答案