如何用空格拆分数据框

How can I split dataframe with blank spaces

import pandas
import numpy

names = ['a', 'b', 'c']
df = pandas.DataFrame([1, 2, 3, numpy.nan, numpy.nan, 4, 5, 6, numpy.nan, numpy.nan, 7, 8, 9])

对于上面的情况,情况会发生怎样的变化?有人可以解释一下吗? 我怎样才能得到这个,

df1 = 
     0
0  1.0
1  2.0
2  3.0
df2 =
     0
4  4.0
5  5.0
6  6.0
df3 = 
      0
8   7.0
9   8.0
10  9.0

您可以生成一个临时列,删除 NaN,并按临时列分组:

dataframes = {f'df{idx+1}': d for idx, (_, d) in enumerate(df.dropna().groupby(df.assign(cond=df.isna().cumsum()).dropna()['cond']))}

输出:

>>> dataframes
{'df1':      0
 0  1.0
 1  2.0
 2  3.0,
 'df2':      0
 5  4.0
 6  5.0
 7  6.0,
 'df3':       0
 10  7.0
 11  8.0
 12  9.0}
 
>>> dataframes['df1']
     0
0  1.0
1  2.0
2  3.0

>>> dataframes['df2']
     0
5  4.0
6  5.0
7  6.0

>>> dataframes['df3']
      0
10  7.0
11  8.0
12  9.0