pandas drop
在pandas中,有一个非常常用的函数叫做drop,它可以用来删除DataFrame或Series中的行或列。在数据处理中,我们经常需要删除一些不需要的数据,或者只保留感兴趣的数据,这个时候drop就能派上用场。
DataFrame中的drop
首先我们来看一下如何在DataFrame中使用drop函数。我们先创建一个包含一些数据的DataFrame:
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
运行以上代码,我们可以看到DataFrame df的内容如下:
A B C
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
现在我们想要删除列B,可以使用drop函数:
df = df.drop('B', axis=1)
print(df)
运行以上代码,我们可以看到列B已经被成功删除了:
A C
0 1 9
1 2 10
2 3 11
3 4 12
除了删除列,我们也可以删除行。比如我们想要删除第2行,可以这样做:
df = df.drop(1)
print(df)
运行以上代码,我们可以看到第2行已经被成功删除了:
A C
0 1 9
2 3 11
3 4 12
Series中的drop
除了DataFrame,我们还可以在Series中使用drop函数。同样的,我们先创建一个包含一些数据的Series:
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s)
运行以上代码,我们可以看到Series s的内容如下:
a 1
b 2
c 3
d 4
dtype: int64
现在我们想要删除索引为b的行,可以使用drop函数:
s = s.drop('b')
print(s)
运行以上代码,我们可以看到索引为b的行已经被成功删除了:
a 1
c 3
d 4
dtype: int64
drop函数的注意事项
在使用drop函数时,有一些需要注意的事项。首先,drop函数默认是返回一个新的对象,不会修改原对象。如果我们想要直接在原对象上进行操作,可以设置参数inplace为True:
df.drop('A', axis=1, inplace=True)
print(df)
运行以上代码,我们可以看到列A已经被成功删除了:
C
0 9
1 10
2 11
3 12
另外,drop函数还有一个参数labels,可以用来删除多个行或列:
df = df.drop(labels=['C', 1])
print(df)
运行以上代码,我们可以看到列C和第2行已经被成功删除了:
A
0 1
2 3
3 4
除了labels参数外,我们还可以使用索引切片来删除多个行或列:
df = df.drop(df.index[1:])
print(df)
运行以上代码,我们可以看到第2行及其之后的行都已经被成功删除了:
A
0 1
结语
通过本文的介绍,我们学习了如何在pandas中使用drop函数删除DataFrame或Series中的行或列。drop函数是一个非常实用的函数,在数据处理中经常会用到。