我有一个数据帧,其中包含信息块,它们之间有一行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
0 1 2 3 4
x s a g g
q r w l p
z l w q k
DF2
0 1 2 3 4
k u l p a
m 1 l 9 0
o p q 1 7
你可以试试:
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'],'nn',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