擅长:python、mysql、java
<p>在pandas中不需要SQL来执行此操作。
可以使用以下方法连接两个数据帧:</p>
<pre><code>df1.set_index('patient_id').join(df2.set_index('patid'))
</code></pre>
<p>您可以根据条件创建列,类似于<code>CASE WHEN ECD='1234' THEN 'ACTIVE' ELSE 'ACTIVE' END AS ACTIVE_INACTIVE,
</code>
做一些类似的事情:</p>
^{pr2}$
<p>如果您真的需要使用SQL,可以使用</p>
<pre><code>sudo -H pip3 install pandasql
</code></pre>
<p>然后,您可以像您预期的那样使用它:</p>
<pre><code>from pandasql import sqldf
pysqldf = lambda q: sqldf(q, globals())
q = """SELECT
*,
CASE WHEN a.ECD='1234' THEN 'ACTIVE' ELSE 'INACTIVE' END AS ACTIVE_INACTIVE
FROM
df1 a
JOIN
df2 b
ON a.patient_id = b.patid;"""
print(pysqldf(q).head())
</code></pre>