基于相似字段与实际匹配的数据帧连接/合并

2024-09-28 17:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有两个数据集,我把它们从Teradata拉到Pandas数据帧中。你知道吗

tables=pd.DataFrame(session.execute("select databasename as source_db, tablename as source_obj, databasename||'.'||tablename as full_tablename, tablekind as source_obj_kind from dbc.tables").fetchall()).set_index('databasename')
tvm=pd.DataFrame(session.execute("select tvmname target_obj, tablekind target_obj_kind, createtext from dbc.tvm").fetchall()).set_index('createtext')

我正在尝试在这两个项之间运行一个与以下语法等效的连接(teradata sql):

tvm.createtext like '%"' !! trim (tables.source_db) !! '"."'!! trim (tables.source_obj)!! '"%' (not cs) 

通俗地说,如果表中的完整的_databasename(source | db |‘.| | source | obj)位于tvm的createtext列中,那么创建一个新的dataframe。你知道吗

我试图避免编写两个for语句来检查表中的每一行,并手动将其与tvm中的每一行进行比较。你知道吗

谢谢你!你知道吗


Tags: 数据nameobjsourcedataframeexecutedbtables