Python pandas 在每一行之后插入空行

新手上路,请多包涵

您好,我正在尝试使用熊猫在当前数据的每一行之后插入 3 个空行,然后导出数据。例如,样本当前数据可以是:

 name     profession
Bill      cashier
Sam        stock
Adam      security

理想情况下我想要实现的目标:

 name     profession
Bill      cashier
Nan         Nan
Nan         Nan
Nan         Nan
Sam        stock
Nan         Nan
Nan         Nan
Nan         Nan
Adam      security
Nan         Nan
Nan         Nan
Nan         Nan

我已经尝试过 itertools 但是我不确定如何使用这种方法在每行之后使用精确地获得三个空行。任何帮助、指导、示例都将不胜感激!

原文由 olive 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

我认为在数据帧上使用 append 效率很低(每次都必须为整个数据帧重新分配内存)。

DataFrame 用于分析数据和轻松添加列——但不是行。

所以我认为一个好的方法是创建一个正确大小的新数据框,然后将数据传输给它。最简单的方法是使用索引。

 # Demonstration data
data = 'name profession Bill cashier Sam stock Adam security'
data = np.array(data.split()).reshape((4,2))
df = pd.DataFrame(data[1:],columns=data[0])

# Add n blank rows
n = 3
new_index = pd.RangeIndex(len(df)*(n+1))
new_df = pd.DataFrame(np.nan, index=new_index, columns=df.columns)
ids = np.arange(len(df))*(n+1)
new_df.loc[ids] = df.values
print(new_df)

输出:

     name profession
0   Bill    cashier
1    NaN        NaN
2    NaN        NaN
3    NaN        NaN
4    Sam      stock
5    NaN        NaN
6    NaN        NaN
7    NaN        NaN
8   Adam   security
9    NaN        NaN
10   NaN        NaN
11   NaN        NaN

原文由 Bill 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题