我在Python Pandas中有两个数据帧。在
存储在单元格中的数据如下:
DF1
- DatabaseId Integer
- DatabaseName String
DF2
- CreateString String
我想将列DataBaseID应用于DF2中的任何记录,其中DF1.DatabaseName存在于createstring的上下文中。在
^{pr2}$第一条记录将失败,并且不会包含在结果集中。 第二个记录将成功,并将出现在结果集中。在
我研究了各种选项,包括.isin
,和.contains
,但这些都不起作用。这似乎是一个带有“if match found success”条件的“受控”笛卡尔连接。但我一直没能找到一种方法来做到这一点,而且效率很高。在
需要评估的总列表大小在100K到500K之间。在
更新 添加了更多示例数据:
>>> DF1.head(10)
DatabaseID DatabaseName
0 DB1
1 DB2
2 DB3
3 DB4
...
>>> DF2.head(10)
CreateString
None
None
None
CREATE VIEW DB1.Table1 AS LOC…
None
REPLACE VIEW DB3.Table3...
CREATE VIEW DB3.Table10 AS SELE...
CREATE VIEW DB55.Table999 AS SELEC...
...
Desired Result
DatabaseID DatabaseName CreateText
0 DB1 CREATE VIEW DB1.Table1 AS LOC…
2 DB3 REPLACE VIEW DB3.Table3...
2 DB3 CREATE VIEW DB3.Table10 AS SELE...
...
etc...
...
更新:如何解析表名:
原始答案:
你可以这样做:
^{pr2}$相关问题 更多 >
编程相关推荐