首页 > 解决方案 > 根据字符串值合并两个数据帧

问题描述

我在 DF1 中的 col1 中有复杂的文本作为值,我希望它与 DF2 中的 clo1 和 2 合并。我想知道是否有一种快速的方法可以将它与 python 合并

import pandas as pd

DF1 = pd.DataFrame({'Col1':['AB/B/C','DE/f','G/T/R']})

DF2 = pd.DataFrame({'Col1':['AB','B','C','D'],
                   'Test2':[1,2,3,4]})

print(DF1)
print(DF2)

输出: 输出

先感谢您

标签: pythonpandasmerge

解决方案


这应该让你接近你想要的。您可能需要清理一些行才能获得最终的数据框

dft = DF1.Col1.str.split('/').explode()
dft = DF1.merge(dft, left_index=True, right_index=True)
dft.merge(DF2, left_on='Col1_y', right_on='Col1', how='left')

   Col1_x Col1_y Col1  Test2
0  AB/B/C     AB   AB    1.0
1  AB/B/C      B    B    2.0
2  AB/B/C      C    C    3.0
3    DE/f     DE  NaN    NaN
4    DE/f      f  NaN    NaN
5   G/T/R      G  NaN    NaN
6   G/T/R      T  NaN    NaN
7   G/T/R      R  NaN    NaN

推荐阅读