我正在使用pandasql从df1获取数据.

import pandasql as ps

df1=pd.DataFrame({"min":[10,10,21],
                   "max":[20, 20, 30],
                   "grade":['low', 'medium', "high"],
                   "class":['english', 'math', "english"]})
df2=pd.DataFrame({"score":([15, 16, 25]),
                          "class":['english', 'math', "english"]})


import pandasql as ps

sqlcode = '''
select
df1.grade

from df2 
inner join df1 
on df2.score between df1.min and df1.max and df1.class = df2.class
'''

newdf = ps.sqldf(sqlcode,locals())
newdf

推荐答案

无需分配新列,只需稍微调整sql查询即可直接获得所需的输出:

select df2.*, df1.grade -- Notice the change
from df2 
left join df1 -- Notice the change
on (df2.score between df1.min and df1.max) and (df1.class = df2.class)

   score    class   grade
0     15  english     low
1     16     math  medium
2     25  english    high

Python相关问答推荐

如何计算两极打印机中 * 所有列 * 的出现次数?

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

重新匹配{ }中包含的文本,其中文本可能包含{{var}

如何在polars(pythonapi)中解构嵌套 struct ?

Pandas计数符合某些条件的特定列的数量

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

如何在turtle中不使用write()来绘制填充字母(例如OEG)

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

处理具有多个独立头的CSV文件

从源代码显示不同的输出(机器学习)(Python)

如何反转一个框架中列的值?

你能把函数的返回类型用作其他地方的类型吗?'

为什么dict. items()可以快速查找?

对数据帧进行分组,并按组间等概率抽样n行

为什么我的scipy.optimize.minimize(method=";newton-cg";)函数停留在局部最大值上?

如何将列表从a迭代到z-以抓取数据并将其转换为DataFrame?

无法使用请求模块从网页上抓取一些产品的名称

两个名称相同但值不同的 Select 都会产生相同的值(discord.py)

有什么方法可以在不对多索引DataFrame的列进行排序的情况下避免词法排序警告吗?

在Django REST框架中定义的URL获得404分