Pandas DataFrame数据删除详解:drop与del方法实战
本文详解Pandas中DataFrame的数据删除操作,重点讲解drop和del两种方法。通过默认索引和自定义索引两种场景,演示单行、多行及连续列的删除代码与结果,帮助开发者掌握高效的数据清洗技巧。
本文主要介绍在
Pandas库中处理DataFrame对象时的数据删除操作,核心方法包括使用drop函数和del语句。
# drop函数的参数解释
drop(
self,
labels=None, # 就是要删除的行列的标签,用列表给定;
axis=0, # axis是指处哪一个轴,0为行(默认),1为列;
index=None, # index是指某一行或者多行
columns=None, # columns是指某一列或者多列
level=None, # level是指等级,针对多重索引的情况;
inplace=False, # inplaces是否替换原来的dataframe;
errors="raise",
)
axis=0或者 和 index或columns 指定行列只需要使用一组就行
1. 基于默认行列索引的删除操作
首先准备示例数据,生成一个5行5列的随机DataFrame。
import numpy as np
import pandas as pd
# 生成随机数组-5行5列
df = pd.DataFrame(np.random.rand(5,5))
print(df)
具体数据展示如下:
0 1 2 3 4
0 0.760489 0.074633 0.788416 0.087612 0.560539
1 0.758450 0.599777 0.384075 0.525483 0.628910
2 0.386808 0.148106 0.742207 0.452627 0.775963
3 0.662909 0.134640 0.186186 0.735429 0.459556
4 0.328694 0.269088 0.331404 0.835388 0.899107
1.1 行数据删除
[1] 删除单行操作
# 删除单行,删除第2行
df.drop(df.index[1],inplace=True) # inplace=True 原地修改
print(df)
执行上述代码后的输出结果为:
0 1 2 3 4 0 0.605764 0.234973 0.566346 0.598105 0.478153 2 0.383230 0.822174 0.228855 0.743258 0.076701 3 0.875287 0.576668 0.176982 0.341827 0.112582 4 0.205425 0.898544 0.799174 0.000905 0.377990
[2] 删除不连续的多行数据
# 删除不连续多行,删除第2和第4行
df.drop(df.index[[1,3]],inplace=True)
print(df)
执行代码后的结果如下:
0 1 2 3 4 0 0.978612 0.556539 0.781362 0.547527 0.706686 2 0.845822 0.321716 0.444176 0.053915 0.296631 4 0.617735 0.040859 0.129235 0.525116 0.005357
[3] 删除连续的多行数据
# 删除连续多行
df.drop(df.index[1:3],inplace=True) # 开区间,最后一个索引号不计算在内
print(df)
执行代码后的结果如下:
0 1 2 3 4 0 0.072891 0.926297 0.882265 0.971368 0.567840 3 0.163212 0.546069 0.360990 0.494274 0.065744 4 0.752917 0.242112 0.526675 0.918713 0.320725
1.2 列数据删除
列的删除可以通过
del关键字或drop函数实现。例如使用`del df[1]`可以删除第2列,这是一种原地删除操作。本文重点讲解使用drop函数进行列删除的方法。
[1] 删除指定的列
df.drop([1,3],axis=1,inplace=True) # 指定轴为列
# df.drop(columns=[1,3],inplace=True) # 直接指定列
执行代码后的结果如下:
0 2 4 0 0.592869 0.123369 0.815126 1 0.127064 0.093994 0.332790 2 0.411560 0.118753 0.143854 3 0.965317 0.267740 0.349927 4 0.688604 0.699658 0.932645
[2] 删除连续的列
df.drop(df.columns[1:3],axis=1,inplace=True) #指定轴
# df.drop(columns=df.columns[1:3],inplace = True) # 指定列
print(df)
执行代码后的结果如下:
0 3 4 0 0.309674 0.974694 0.660285 1 0.677328 0.969440 0.953452 2 0.954114 0.953569 0.959771 3 0.365643 0.417065 0.951372 4 0.733081 0.880914 0.804032
2. 基于自定义行列索引的删除操作
接下来使用自定义索引的示例数据进行演示。
df = pd.DataFrame(data=np.random.rand(5,5))
df.index = list('abcde')
df.columns = list('一二三四五')
print(df)
具体数据展示如下:
一 二 三 四 五
a 0.188495 0.574422 0.530326 0.842489 0.474946
b 0.912522 0.982093 0.964031 0.498638 0.826693
c 0.580789 0.013957 0.515229 0.795052 0.859267
d 0.540641 0.865602 0.305256 0.552566 0.754791
e 0.375407 0.236118 0.129210 0.711744 0.067356
2.1 行数据删除
[1] 删除单行操作
df.drop(['b'],inplace=True)
print(df)
执行代码后的结果如下:
一 二 三 四 五 a 0.306350 0.622067 0.030573 0.490563 0.009987 c 0.672423 0.071661 0.274529 0.400086 0.263024 d 0.654204 0.809087 0.066099 0.167290 0.534452 e 0.628917 0.232629 0.070167 0.469962 0.957898
[2] 删除多行操作
df.drop(['b','d'],inplace=True)
print(df)
执行代码后的结果如下:
一 二 三 四 五 a 0.391583 0.509862 0.924634 0.466563 0.058414 c 0.802016 0.621347 0.659215 0.575728 0.935811 e 0.223372 0.286116 0.130587 0.113544 0.910859
2.2 列数据删除
[1] 删除单列操作
df.drop(['二'],axis=1,inplace=True)# 删除单列
print(df)
执行代码后的结果如下:
一 三 四 五 a 0.276147 0.797404 0.184472 0.081162 b 0.630190 0.328055 0.428668 0.168491 c 0.979958 0.029032 0.934626 0.106805 d 0.762995 0.003134 0.136252 0.317423 e 0.137211 0.116607 0.367742 0.840080
[2] 删除多列操作
df.drop(['二','四'],axis=1,inplace=True) # 删除多列
# df.drop(columns=['二','四'],inplace=True) # 删除多列
print(df)
执行代码后的结果如下:
一 三 五 a 0.665647 0.709243 0.019711 b 0.920729 0.995913 0.490998 c 0.352816 0.185802 0.406174 d 0.136414 0.563546 0.762806 e 0.259710 0.775422 0.794880
至此,关于Pandas中DataFrame数据删除的详细介绍已完成。如需了解更多关于Pandas中DataFrame数据删除的内容,建议查阅本站往期文章或继续浏览后续相关教程。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









