我有两个数据帧df1df2,我想连接它们并创建新的数据帧DF3.

我想要联接工作,即使df1dest列中有df2列的dest中有一个匹配.

加入密钥是对org,dest

df1

Name    org   dest  
Ashok   A      B
Rahul   A      C
Anupa   B      A
Sam     A      B

df2

org  dest   Amount
A       A/B/C   10
B       C       20
A       W       30

Expected Output

Name    org   dest  Amount
Ashok   A      B    10
Rahul   A      C    
Anupa   B      A
Sam     A      B    10

如何在python中实现这一点?

推荐答案

splitexplode是"DEST"中的ID,然后是merge:

out = df1.merge(df2.assign(dest=df2['dest'].str.split('/'))
                   .explode('dest'),
                on=['org', 'dest'], how='left')

输出:

    Name org dest  Amount
0  Ashok   A    B    10.0
1  Rahul   A    C    10.0
2  Anupa   B    A     NaN
3    Sam   A    B    10.0

可重现的输入:

df1 = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
df2 = pd.DataFrame({'C': [1, 2, 2, 3, 3, 3, 4],
                    'D': [9, 10, 11, 12, 13, 14, 15]})

Python相关问答推荐

Python 3.12中的通用[T]类方法隐式类型检索

试图找到Python方法来部分填充numpy数组

numba jitClass,记录类型为字符串

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

scikit-learn导入无法导入名称METRIC_MAPPING64'

NP.round解算数据后NP.unique

Python中绕y轴曲线的旋转

Streamlit应用程序中的Plotly条形图中未正确显示Y轴刻度

python中字符串的条件替换

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

如何并行化/加速并行numba代码?

Python Pandas获取层次路径直到顶层管理

交替字符串位置的正则表达式

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

如何使用大量常量优化代码?

上传文件并使用Panda打开时的Flask 问题

遍历列表列表,然后创建数据帧

是否将Pandas 数据帧标题/标题以纯文本格式转换为字符串输出?

在聚合中使用python-polars时如何计算模式

搜索结果未显示.我的URL选项卡显示:http://127.0.0.1:8000/search?";,而不是这个:";http://127.0.0.1:8000/search?q=name";