前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对比Excel,Python pandas在数据框架中插入行

对比Excel,Python pandas在数据框架中插入行

作者头像
fanjy
发布2021-12-20 14:02:52
5.5K0
发布2021-12-20 14:02:52
举报
文章被收录于专栏:完美Excel

标签:python与Excel,pandas

Excel中的一项常见任务是在工作表中插入行,这可以通过Excel功能区命令或者右键快捷菜单或者快捷键来完成。

在Python中处理数据时,也可以将行插入到等效的数据框架中。

将行添加到数据框架中

pandas没有“插入”功能,我们不能在想象的工作表中右键单击一行,然后选择.insert()。pandas内置函数不允许我们在特定位置插入行。内置方法只允许我们在数据框架的末尾添加一行(或多行),有两种方法:append和concat。它们的工作原理非常相似,因此这里将只讨论append。让我们看一些代码。

图1

刚刚创建了一个5×3的数据框架。现在,如果想向其中添加一行,可以使用append(),它接受下列项目之一:数据框架、序列或字典。为了更好地说明,让我们添加值为100的一行。

图2

注意,新添加的行的索引值为0,这是重复的?参见第一行——原始数据框架还有一行索引为0。现在出现了一个问题,有两行的索引为0。如果我们选择索引0,我们将得到两行——原始第一行和新添加的行。在大多数情况下,这可能不是你的意图。

图3

解决这个问题很容易,只需要在append()操作中添加另一个参数ignore_index=True。这几乎等同于reset_index()。现在,你应该在索引5处有新添加的行。

图4

你可能会说,这不是你想要的,并且你想在中间添加行,正好在原始数据框架的第三行之后。那么,定制的时候到了。

模拟如何在Excel中插入行

在Excel中,当我们向表中插入一行时,实际上只是将所有内容下移一行(插入多行相同)。从技术上讲,我们将原始表“拆分”为两部分,然后将新行放在它们之间。一个图形表示如下所示。

图5:在pandas中插入行的图形化演示

我们可以模仿上述技术,并在Python中执行相同的“插入”操作。回到我们假设的要求:在第三行(即索引2)之后插入一行。

我们将创建两个新的数据框架,part_1和part_2,分别包含第1-3行和第4-5行。然后我们将使用append()方法将它们与row_to_add粘合在一起。

图6

好了,我们刚刚在第3行之后添加了值为100的新行。大多数情况下,我们会将上述内容转换为函数,以便使代码可重用。下面是一个简单的示例,注意,你应该处理用户输入的row_num<0或row_num>原始数据框架的最大长度的情况。

图7

注:本文学习整理自pythoninoffice.com。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档