为了账号安全,请及时绑定邮箱和手机立即绑定

python sqllite3按字符串列水平分区

python sqllite3按字符串列水平分区

红颜莎娜 2021-06-27 13:47:39
我有一个 30GB 的 sqllite3 数据库,有 2500 万行。我想按字符串列对表进行分组,并为每个组创建一个新表,以字符串命名并包含所有列。这可以用 python 和 sqllite3 实现吗?我可以在 python 中处理块,但是有 sql 命令吗?开始表: name = all_entriesa   b   c   dhi  4   234 lalabye 7   342 lulubye 5   433 abcbye 4   234 abdhi  56  435 abchi  3   455 a结果表:name = byea   b   c   dbye 7   342 lulubye 5   433 abcbye 4   234 abdname = hia   b   c   dhi  4   234 lalahi  56  435 abchi  3   455 a
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

如果您熟悉如何使用 sqlite,您可以利用pandas并将您的表拆分为多个块,然后将它们推送回您的数据库。


以下是拆分数据的方法:


import pandas as pd


df = 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}


查看完整回答
反对 回复 2021-07-06
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信