我目前有一个Python脚本,它在读取和运行表上的SQL代码之前,将两个pandaDataFrames
转换为内存中SQLite
数据库中的表。我希望脚本更加“Pythonic”,合并和/或加入DataFrames
,但是我很难找到Python代码示例,用于从两个表中查找SELECT
特定的(而不是全部)元素,以及FROM
、WHERE
和ORDER BY
子句。我是Python的新手,也是我所在部门的实验对象,因此如果我能让它工作起来,它将成为我工作组中合作伙伴编写的更多脚本的模板。实际元素名称已更改为专有信息,但结构相同。提前感谢您的帮助
SELECT
dfE.Element05 AS [Alt Element05],
dfE.Element03 AS [Alt Element03],
dfE.Element04 AS [Alt Element04],
dfN.Element03,
dfN.Element04,
dfN.Element08,
dfN.Element09,
dfN.Element10,
dfN.Element17,
dfN.Element18,
dfN.Element19,
dfN.Element20,
dfN.Element23,
dfN.Element26,
dfN.Element13
FROM dfE INNER JOIN dfN ON (dfE.Element17 = dfN.Element17) AND (dfE.Element20 = dfN.Element20)
WHERE (((dfN.Element03)<>dfE.Element03))
GROUP BY
dfE.Element05,
dfE.Element03,
dfE.Element04,
dfN.Element03,
dfN.Element04,
dfN.Element08,
dfN.Element09,
dfN.Element10,
dfN.Element17,
dfN.Element18,
dfN.Element19,
dfN.Element20,
dfN.Element23,
dfN.Element26,
dfN.Element13
ORDER BY
dfE.Element03,
dfN.Element03,
dfN.Element08
首先,我将复制要加入的数据帧,并选择其中的特定列。我已将“Element17”和;来自dfE的“Element20”,因为您在加入时需要它
前
要重命名列,请使用以下命令:
一旦您设置了另一个df(让我们把它命名为
df2
),您就可以像在SQL中一样使用pd.merge()
来连接它们*使用pd.merge时,要加入的列必须具有相同的名称,否则将无法工作!(假设df1['A']与df2['B']共享相同的数据,并且您希望加入数据帧。您必须更改其中一个数据帧上的名称,使其与您要加入的Df的列名相等,否则将无法工作。)前
对于
Where
,我将执行以下操作对于
Order By
,您可以使用.sort(),但我不太愿意给您提供如何使用它的建议,因为我没有太多使用它我希望这有帮助!如果你有问题,请告诉我
***这可能不是做事情的最佳方式。如果我让你养成坏习惯,我会事先向你道歉。我也是python新手
相关问题 更多 >
编程相关推荐