Python 将数据帧划分为数据帧字典

Python 将数据帧划分为数据帧字典,python,pandas,Python,Pandas,我有一个数据框,其中包含大量信息,它们之间有一行要分隔的nan。我想将我最初的大数据帧转换成一个数据帧字典,其中字典的元素是单独的块 前df: 0 1 2 3 4 x s a g g q r w l p z l w q k nan nan nan nan nan k u l p a m 1 l 9 0 o p q 1

我有一个数据框,其中包含大量信息,它们之间有一行要分隔的
nan
。我想将我最初的大数据帧转换成一个数据帧字典,其中字典的元素是单独的块

前df:

0    1    2    3    4

x    s    a    g    g
q    r    w    l    p 
z    l    w    q    k
nan  nan  nan  nan  nan
k    u    l    p    a
m    1    l    9    0 
o    p    q    1    7
我们的想法是利用这个数据帧,创建一个包含两个(或更多,如果有更多“块”)数据帧的数据帧字典

df1

df2

您可以尝试:

import more_itertools as mit
m = df.dropna(how='all')
l = [df.loc[i] for i in mit.consecutive_groups(m.index)]
print(l[0],'\n',l[1])

同样,对于字典,您可以使用:

import more_itertools as mit
m = df.dropna(how='all')
d = {f"df{e}":df.loc[i] for e,i in enumerate(mit.consecutive_groups(m.index))}
print(d['df0'],'\n\n',d['df1'])

import more_itertools as mit
m = df.dropna(how='all')
l = [df.loc[i] for i in mit.consecutive_groups(m.index)]
print(l[0],'\n',l[1])
   0  1  2  3  4
0  x  s  a  g  g
1  q  r  w  l  p
2  z  l  w  q  k 
   0  1  2  3  4
4  k  u  l  p  a
5  m  1  l  9  0
6  o  p  q  1  7
import more_itertools as mit
m = df.dropna(how='all')
d = {f"df{e}":df.loc[i] for e,i in enumerate(mit.consecutive_groups(m.index))}
print(d['df0'],'\n\n',d['df1'])
   0  1  2  3  4
0  x  s  a  g  g
1  q  r  w  l  p
2  z  l  w  q  k 

   0  1  2  3  4
4  k  u  l  p  a
5  m  1  l  9  0
6  o  p  q  1  7