Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python sqllite3按字符串列进行水平分区_Python_Sqlite - Fatal编程技术网

python sqllite3按字符串列进行水平分区

python sqllite3按字符串列进行水平分区,python,sqlite,Python,Sqlite,我有一个30gb的sqllite3数据库,有2500万行。我想按字符串列对表进行分组,并为每个组创建一个新表,以字符串命名并包含所有列。 这在python和sqllite3中可能吗?我可以用python处理块,但是有sql命令吗 起始表:name=所有项目 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=

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

起始表:
name=所有项目

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

如果您熟悉如何使用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}

你应该举例说明你所拥有的以及你想要达到的目标。请看一下如何提供。熊猫也可以,但是有sql命令吗?这似乎是一个非常普遍的现象operation@Benni一旦您连接到
sqlite
并执行查询,就会得到一个
生成器
,其中包含
选择中的所有值。现在,您可以使用多种工具/方法分割结果,
pandas
就是其中之一。