簡體   English   中英

python sqllite3按字符串列水平分區

[英]python sqllite3 horizontal partitioning by string column

我有一個2500萬行的30gb sqllite3數據庫。 我想按字符串列對表進行分組,並為每個組創建一個新表,以該字符串命名並包含所有列。 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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM