python sqllite3按字符串列水平分区

我有一个 30GB 的 sqllite3 数据库,有 2500 万行。我想按字符串列对表进行分组,并为每个组创建一个新表,以字符串命名并包含所有列。这可以用 python 和 sqllite3 实现吗?我可以在 python 中处理块,但是有 sql 命令吗?


开始表: name = all_entries


a   b   c   d

hi  4   234 lala

bye 7   342 lulu

bye 5   433 abc

bye 4   234 abd

hi  56  435 abc

hi  3   455 a

结果表:


name = bye


a   b   c   d

bye 7   342 lulu

bye 5   433 abc

bye 4   234 abd

name = hi


a   b   c   d

hi  4   234 lala

hi  56  435 abc

hi  3   455 a


红颜莎娜
浏览 115回答 1
1回答

德玛西亚99

如果您熟悉如何使用 sqlite,您可以利用pandas并将您的表拆分为多个块,然后将它们推送回您的数据库。以下是拆分数据的方法:import pandas as pddf = pd.DataFrame({'a': ['hi', 'bye', 'bye', 'bye', 'hi', 'hi'],                   'c': [234, 342, 433, 234, 435, 455],                   'b': [4, 7, 5, 4, 56, 3],                   'd': ['lala', 'lulu', 'abc', 'abd', 'abc', 'a']})dfs = {i: df.loc[df['a']==i] for i in df['a'].unique()}dfs#{'bye':      a    b  c    d#          1  bye  7  342  lulu#          2  bye  5  433   abc#          3  bye  4  234   abd,# 'hi':       a   b    c     d#          0  hi   4  234  lala#          4  hi  56  435   abc#          5  hi   3  455     a}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python