Python SQL to pandas DataFrame 2

问题描述 投票:1回答:1
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)

我的目标是仅使用熊猫的方法和函数来重写它。首先,我想分配一个新列NewCol,其中还将包含一个新列PostId,但是我非常怀疑我应该分两步进行。任何人都可以指导我寻求解决方案或提供我可以分析的完整代码吗?

python pandas sqlite
1个回答
0
投票
您只想在一行中用熊猫重写此查询吗?可能会完成,但是它非常不可读。这样的东西看起来更整洁

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']]

© www.soinside.com 2019 - 2024. All rights reserved.