Pandas高级数据分析快速入门之数据编辑——删除行与列

Posted 肖永威

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas高级数据分析快速入门之数据编辑——删除行与列相关的知识,希望对你有一定的参考价值。

在高级数据分析过程中,数据删除操作也是常用的数据编辑操作。本文总结了常用的行、列数据删除操作快速入门方法。

首先,读取Excel或csv文件,用于演练删除操作。

import pandas as pd
df = pd.read_excel('sport.xlsx')
df
idnameageGendersport
01001.0董国建34.000000马拉松
11002.0苏炳添31.000000百米
21003.0彭建华24.000000马拉松
31004.0张德顺25.000000马拉松
41005.0焦安静25.000000马拉松
51006.0葛曼棋24.000000百米
6NaN627.166667NaNNaN

1. 删除行

1.1. 按行索引删除行数据

df = df.drop(6)  #删除index==6
df
idnameageGendersport
01001.0董国建34.0马拉松
11002.0苏炳添31.0百米
21003.0彭建华24.0马拉松
31004.0张德顺25.0马拉松
41005.0焦安静25.0马拉松
51006.0葛曼棋24.0百米

1.2. 分组删除最后一行数据

df = df.groupby('sport', as_index=False).apply(lambda x: x.iloc[:-1]).reset_index(drop=True)
df
idnameageGendersport
01002.0苏炳添31.0百米
11001.0董国建34.0马拉松
21003.0彭建华24.0马拉松
31004.0张德顺25.0马拉松

同理,分组删除首行。

df = df.groupby('sport', as_index=False).apply(lambda x: x.iloc[1:]).reset_index(drop=True)

1.3. 按条件查询删除行数据

df = df.drop(df.loc[df['name']=='董国建'].index).reset_index(drop=True)
df
idnameageGendersport
01002.0苏炳添31.0百米
11003.0彭建华24.0马拉松
21004.0张德顺25.0马拉松

1.4. 按多个行索引删除多行

df = df.drop(index=[0,2])
df
idnameageGendersport
11003.0彭建华24.0马拉松

1.5. 按行范围删除

k = df.loc[df['name']=='彭建华'].index
df = df.drop(range(k[0],4))

2. 删除列

2.1. 方法一:drop

df = df.drop(['id'],axis=1)
df
nameageGendersport
0葛曼棋24.0百米
1彭建华24.0马拉松
2张德顺25.0马拉松
3焦安静25.0马拉松

或者,可以如下:

df = df.drop(columns=['age','Gender'])

2.2. 方法二:del

del df['name']
df
ageGendersport
024.0百米
124.0马拉松
225.0马拉松
325.0马拉松

3. 总结

3.1. drop方法的用法

drop(labels, axis=0, =None, inplace=False, errors=‘raise’)

参数名称说明
labels删除索或列标签
axisaxis为0时表示删除行,axis为1时表示删除列,默认为0
labels用于多层索引,代表层级
inplace默认为False,设置是否替换原始数据,True为替换

3.2. 依赖切片操作

关于切片操作,请自行参考相关文档,或者,关注后续博文。

以上是关于Pandas高级数据分析快速入门之数据编辑——删除行与列的主要内容,如果未能解决你的问题,请参考以下文章

Pandas高级数据分析快速入门之五——机器学习特征工程篇

Pandas高级数据分析快速入门之五——机器学习特征工程篇

Pandas高级数据分析快速入门之四——数据可视化篇

Pandas高级数据分析快速入门之六——机器学习预测分析篇

Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇

Pandas高级数据分析快速入门之一——Python开发环境篇