购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 删除表格的行和列

在Excel中要删除表格的行和列,直接选择然后执行删除命令即可,如果用VBA代码删除则显得更麻烦一些。在Pandas中,使用df.drop()函数来删除指定的行和列,以及使用df.dropna()函数删除有缺失值的行和列。

4.4.1 删除行

df.drop()函数执行删除行,写法为df.drop(序号或标签,axis=0,inplace=True),由于axis的默认值是0,所以在进行删除行操作时,可以不写此参数。inplace参数表示就地删除,也就是在原表删除。该函数支持单行、多行删除。

1.通过行索引序号删除行

如果DataFrame表格的行索引是自然序号,则直接在df.drop()函数的第1参数指定行索引序号即可。

1)删除指定的单行

直接在df.drop()函数的第1参数指定行索引序号即可,示例代码如下:

删除单行前后效果对比如图4-36所示。

图4-36 删除单行前后效果对比(1)

2)删除指定的多行

将要删除的行索引序号组织在列表、数组、Series等可迭代对象中,然后放置在df.drop()函数第1参数即可,示例代码如下:

删除多行前后效果对比如图4-37所示。

图4-37 删除多行前后效果对比(1)

2.通过行索引标签删除行

如果DataFrame表格的行索引不是自然序号,而是标签,其删除方式也一样,直接在df.drop()函数的第1参数指定索引行的标签即可。

1)删除指定的单行

直接在df.drop()函数的第1参数指定行索引标签即可,示例代码如下:

删除单行前后效果对比如图4-38所示。

图4-38 删除单行前后效果对比(2)

2)删除指定的多行

将要删除的多行索引标签组织在列表、数组、Series等可迭代对象中,然后放置在df.drop()函数第1参数即可,示例代码如下:

删除多行前后效果对比如图4-39所示。

图4-39 删除多行前后效果对比(2)

4.4.2 删除列

使用df.drop()函数执行删除列,写法为df.drop(序号或标签,axis=1,inplace=True),因为是删除列,所以axis=1是不能省略的。该函数支持单列、多列删除。

1.通过列索引序号删除列

如果DataFrame表格的列索引是自然序号,则直接在df.drop()函数的第1参数指定列索引序号,将axis设置为1即可。

1)删除指定的单列

删除指定的单列,直接在df.drop()函数的第1参数指定列索引序号即可,示例代码如下:

删除单列前后效果对比如图4-40所示。

图4-40 删除单列前后效果对比(1)

2)删除指定的多列

将要删除的多个列索引序号组织在列表、数组、Series等可迭代对象中,然后放置在df.drop()函数第1参数即可,示例代码如下:

删除多列前后效果对比如图4-41所示。

图4-41 删除多列前后效果对比(1)

2.通过列索引标签删除列

如果DataFrame表格的列索引不是自然序号,而是标签,其删除方式也一样,直接在df.drop()函数的第1参数指定列索引标签即可。

1)删除指定的单列

直接在df.drop()函数的第1参数指定列索引标签即可,示例代码如下:

删除单列前后效果对比如图4-42所示。

图4-42 删除单列前后效果对比(2)

2)删除指定的多列

将要删除的多个列索引标签组织在列表、数组、Series等可迭代对象中,然后放置在df.drop()函数第1参数即可,示例代码如下:

删除多列前后效果对比如图4-43所示。

图4-43 删除多列前后效果对比(2)

4.4.3 删除有缺失值的行和列

删除DataFrame表格中有缺失值的行和列,应该是行和列删除的一种特殊情况,它并不是使用df.drop()函数,而是使用df.dropna()这个专用函数,该函数的写法为df.dropna(axis=指定删除方向,how=指定删除方式,inplace=True),axis的默认值是0,表示删除有缺失值的行。inplace参数表示就地删除,也就是在原表删除。

1.删除整行都是缺失值的行

如果希望删除DataFrame表格中整行都是缺失值的行,则在df.dropna()函数中指定axis参数为0,how参数为'all'是关键,示例代码如下:

删除行前后效果对比如图4-44所示。

图4-44 删除行前后效果对比(1)

2.删除整列都是缺失值的列

如果希望删除DataFrame表格中整列都是缺失值的列,则在df.dropna()函数中指定axis为1,how参数为'all'是关键,示例代码如下:

删除列前后效果对比如图4-45所示。

图4-45 删除列前后效果对比(1)

3.删除有缺失值的所在行

如果希望删除DataFrame表格中有缺失值的所在行,则在df.dropna()函数中指定axis为0,how参数为'any'是关键。由于axis的默认值是0,how的默认值是any,所以这两个参数也可以不写,示例代码如下:

删除行前后效果对比如图4-46所示。

图4-46 删除行前后效果对比(2)

4.删除有缺失值的所在列

如果希望删除DataFrame表格中有缺失值的所在列,则在df.dropna()函数中指定axis为1,how参数为'any'是关键,示例代码如下:

删除列前后效果对比如图4-47所示。

图4-47 删除列前后效果对比(2) hefcLY4FaRNaDhmGdj+UBfzKNAnn4xdb3B2yeQX22DrVmQYKO6jmFyqhIaiq7nuV

点击中间区域
呼出菜单
上一章
目录
下一章
×