用Python在填充的Dataframe的开头添加多个空行



我想在数据框架的开始处添加多个空行。我试过使用列表,但它似乎没有返回最佳结果:

df例子:

col4

我不知道您为什么要这样做,但是我通过将原始数据框拆分为具有一行列名的数据框和数据的单独数据框来做到这一点。然后,我创建了一个nan的数据框作为空白行,并将3连接在一起。您需要为此导入numpy。

我创建了一个变量no_cols来表示数据框中的列数,no_empty_rows来表示有多少空行来简化代码:

no_cols = len(df.columns)
no_empty_rows = 6

然后我把这些列变成了它们自己的数据框架,其中一行是列名,标题为np.nan:

cols = pd.DataFrame([df.columns], columns = [np.nan]*no_cols)
NaN   NaN   NaN   NaN
0  Col1  col2  col3  col4

接下来,我将原始数据框中的列重命名为nan:

df.columns = [np.nan]*no_cols
NaN  NaN    NaN   NaN
0  One  Two  Three  four
1    2    4      5     8

然后我创建了一个新的数据框架nans,有6个空白行(这可以改变):

df_empty_rows = (pd.DataFrame(data=[[np.nan]*no_cols]*no_empty_rows,
columns=[np.nan]*no_cols,
index=[np.nan]*no_empty_rows))
NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN  NaN
NaN  NaN  NaN  NaN  NaN

然后可以将所有3附加在一起。首先,我将df的列和数据放回一起并重置它们的索引,然后将其附加到df_empty_rows:

df_out = df_empty_rows.append(cols.append(df).reset_index(drop=True))
NaN   NaN    NaN   NaN
NaN   NaN   NaN    NaN   NaN
NaN   NaN   NaN    NaN   NaN
NaN   NaN   NaN    NaN   NaN
NaN   NaN   NaN    NaN   NaN
NaN   NaN   NaN    NaN   NaN
NaN   NaN   NaN    NaN   NaN
0.0  Col1  col2   col3  col4
1.0   One   Two  Three  four
2.0     2     4      5     8

完整代码:

no_cols = len(df.columns)
no_empty_rows = 6
cols = pd.DataFrame([df.columns], columns=[np.nan]*no_cols)
df.columns = [np.nan]*no_cols
df_empty_rows = (pd.DataFrame(data=[[np.nan]*no_cols]*no_empty_rows,
columns=[np.nan]*no_cols,
index=[np.nan]*no_empty_rows))
df_out = df_empty_rows.append(cols.append(df).reset_index(drop=True))

最新更新