Python SQL 到 pandas DataFrame 2

标签 python pandas sqlite

pd.read_sql_query("""SELECT Tab1.Title, NewTab.NewCol1 FROM
                            (SELECT Col1 AS NewCol, COUNT(*) AS NewCol1
                            FROM Tab2 GROUP BY Col1) AS NewTab
                     JOIN Tab1 ON NewTab.NewCol=Tab1.Id
                     WHERE Tab1.Num=1
                     ORDER BY NewCol1 DESC""", conn)

我的目标是仅使用 pandas 的方法和函数重写它。首先,我想分配一个新列 NewCol,其中还包含一个新列 PostId,但我非常怀疑我是否应该分两步完成。谁能指导我找到解决方案或提供我可以分析的完整代码?

最佳答案

您想在 pandas 中仅用一行重写此查询吗?它可能会完成,但它非常不可读。这样的东西看起来更整洁

NewTab = Tab2.groupby('Col1').size().reset_index(name = 'NewCol1').rename(columns = {'Col1': 'NewCol'})

现在您可以合并这两个表:

result_df = pd.merge(NewTab, Tab1, left_on = 'NewCol', right_on = 'Id')[result_df.Num == 1]

您现在可以在合并后对数据框进行排序并指定列:

result_df.sort_values(by=['NewCol1'], inplace = True)
result_df = result_df[['Title','NewCol1']]

关于Python SQL 到 pandas DataFrame 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59239775/

相关文章:

python - 如何将 pandas df 写入具有多个空格的文本

python - 从 df 创建字典的正确方法或计算 jaccard 相似度的方法

python - 有条件地用不同 df 的值填充 pandas df 的列

android - 将信息保存到数据库后清除 editText 输入

sql - 如何获得“不存在”查询的最大值

Windows 7 上的 Python 3.5.3 和 Oracle 11.2 : cannot locate oracle include files

python - 值的数据格式不正确 - OrdType

python - 考虑 NaN 的 Numpy cumsum

python - 在 pandas 数据框中的列表中搜索

javascript - 如何使用 JavaScript 保存到 SQLite 数据库?