python - 给定两个数据帧,查找满足逻辑方程的所有数据帧索引
问题描述
我必须将我试图关联在一起的数据框并找出一些信息:
df1
Name Logic
Ford AAA|BBB
Chevy JJJ|FFF&DDD|AAA|LLL
Porsche FFF&TTT&UUU|OOO|BBB
df2
idx AAA BBB CCC DDD JJJ FFF LLL TTT UUU OOO
7T1 True True True False True True False True True False
8F4 False True True False True False False False True False
4Q2 True True True True False True True False False True
3Y7 False False False False True False True True True False
我试图找到满足 df1 中每个方程的每个索引值,并将它们放入包含列表的新列中。两个数据框都会有更多条目,但为了理智起见,我将它们保持简短。
结果df:
Name Logic Solutions
Ford AAA|BBB ['7T1','8F4','4Q2']
Chevy JJJ|FFF&DDD|AAA|LLL ['7T1','8F4','4Q2','3Y7']
Porsche FFF&TTT&UUU ['7T1']
解决方案
让我们尝试使用query
,注意这是因为“简单”的列命名,如果您的列包含空格或特殊字符,使用query
f-string 将不起作用。此外,这需要 python 3.6+:
df1['Solutions'] = df1.apply(lambda x: df2.query(f"{x['Logic']}")
.index.to_series()
.unique(),
axis=1)
print(df1)
输出:
Name Logic Solutions
0 Ford AAA|BBB [7T1, 8F4, 4Q2]
1 Chevy JJJ|FFF&DDD|AAA|LLL [7T1, 8F4, 4Q2, 3Y7]
2 Porsche FFF&TTT&UUU [7T1]
推荐阅读
- r - 关于 R ggplot2 无法在 for 循环中绘制正确的图形
- c# - 为什么 RestSharp 返回 text/html 而不是 json?
- arrays - 在 google colab Python 上使用大型数组
- typescript - 打字稿中的对象迭代
- typescript - TypeScript中的后缀双感叹号
- php - 条纹不同价格订阅
- vbscript - 如何执行VBS?
- javascript - inDesign 脚本 - 从“排版脚本”TextFrame 剪切并粘贴到空 TextFrame
- c - 在 VS Code C/C++ 调试控制台中创建变量
- asp.net - 需要使用datagridview共享单个url C#运行多个ASP.net网站副本