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