pandas 操作 dataframe 使用 drop() 函数删除一行或一列

本贴最后更新于 1622 天前,其中的信息可能已经物是人非

drop()函数的用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)

默认参数 axis=0,表示对行进行操作,如需对列进行操作需要更改默认参数为 axis=1,

默认参数 inplace=False,表示该删除操作不改变原数据,而是返回一个执行删除操作后的新 dataframe,如需直接在原数据上进行删除操作,需要更改默认参数为 inplace=True

参数说明
labels 就是要删除的行列的名字,用列表给定
axis 默认为 0,指删除行,因此删除 columns 时要指定 axis=1;
index 直接指定要删除的行
columns 直接指定要删除的列
inplace=False, 默认该删除操作不改变原数据,而是返回一个执行删除操作后的 新 dataframe;
inplace=True, 则会直接在原数据上进行删除操作,删除后无法返回。

因此,删除行列有两种方式:

  1. labels=None,axis=0 的组合
  2. index 或 columns 直接指定要删除的行或列

删除 Series 的一个元素

series = Series([4.5,7.2,-5.3,3.6], index=['A','B','C','D'])
series .drop('C')
output:
  A 4.5
  B 7.2
  D 3.6

删除 DataFrame 的行或列

>>> df = pd.DataFrame(np.arange(12).reshape(3,4), columns=['A', 'B', 'C', 'D'])
>>> df
   A   B   C   D
0  0   1   2   3
1  4   5   6   7
2  8   9  10  11

#Drop columns, 两种方法等价
>>> df.drop(['B', 'C'], axis=1)
   A   D
0  0   3
1  4   7
2  8  11
>>> df.drop(columns=['B', 'C'])
   A   D
0  0   3
1  4   7
2  8  11
# 第一种方法下删除column一定要指定axis=1,否则会报错,如下
>>> df.drop(['B', 'C'])
ValueError: labels ['B' 'C'] not contained in axis

#Drop rows
>>>df.drop([0, 1])
   A  B   C   D
2  8  9  10  11

>>> df.drop(index=[0, 1])
   A  B   C   D
2  8  9  10  11

说明

.drop() 返回的是一个新对象,原对象并不会被改变。

  • Pandas
    6 引用 • 2 回帖 • 1 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    536 引用 • 672 回帖
  • dataframe
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...