【Pandas】pandas Series drop
Pandas2.2 Series
Computations descriptive stats
方法 | 描述 |
---|---|
Series.align(other[, join, axis, level, …]) | 用于将两个 Series 对齐,使其具有相同的索引 |
Series.case_when(caselist) | 用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值 |
Series.drop([labels, axis, index, columns, …]) | 用于从 Series 中删除指定的行或列(对于 Series 来说,通常是删除行) |
pandas.Series.drop
pandas.Series.drop()
是 Pandas 库中的一个方法,用于从 Series 中删除指定的行或列(对于 Series 来说,通常是删除行)。它可以删除一个或多个标签(labels)对应的数据,并返回一个新的 Series,或者直接在原 Series 上进行修改(如果 inplace=True
)。
方法签名
Series.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
参数详解
-
labels
:- 要删除的标签(行或列的索引)。
- 可以是单个标签,也可以是标签列表。
- 默认值:
None
。
-
axis
:- 指定删除的方向。
- 对于 Series,
axis
只能是0
(默认值),表示删除行。 - 默认值:
0
。
-
index
:- 指定要删除的行标签。
- 如果提供了
index
,则会忽略labels
。 - 默认值:
None
。
-
columns
:- 对于 Series,此参数无效(因为 Series 只有一列)。
- 默认值:
None
。
-
level
:- 如果 Series 的索引是多层索引(MultiIndex),则指定要删除的层级。
- 默认值:
None
。
-
inplace
:- 是否直接在原 Series 上进行修改。
- 如果
True
,则直接修改原 Series,并返回None
。 - 如果
False
(默认值),则返回一个新的 Series。 - 默认值:
False
。
-
errors
:- 指定如何处理不存在的标签。
- 如果
'raise'
(默认值),则会抛出异常。 - 如果
'ignore'
,则忽略不存在的标签。 - 默认值:
'raise'
。
返回值
- 如果
inplace=False
(默认),则返回一个新的 Series,其中删除了指定的标签。 - 如果
inplace=True
,则直接修改原 Series,并返回None
。
示例及结果
示例 1:删除单个标签
import pandas as pd# 创建一个 Series
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])# 删除标签为 'b' 的行
result = s.drop(labels='b')print("原 Series:")
print(s)
print("\n删除后的 Series:")
print(result)
结果:
原 Series:
a 10
b 20
c 30
d 40
dtype: int64删除后的 Series:
a 10
c 30
d 40
dtype: int64
示例 2:删除多个标签
import pandas as pd# 创建一个 Series
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])# 删除标签为 'b' 和 'd' 的行
result = s.drop(labels=['b', 'd'])print("原 Series:")
print(s)
print("\n删除后的 Series:")
print(result)
结果:
原 Series:
a 10
b 20
c 30
d 40
dtype: int64删除后的 Series:
a 10
c 30
dtype: int64
示例 3:使用 index
参数删除行
import pandas as pd# 创建一个 Series
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])# 使用 index 参数删除标签为 'a' 和 'c' 的行
result = s.drop(index=['a', 'c'])print("原 Series:")
print(s)
print("\n删除后的 Series:")
print(result)
结果:
原 Series:
a 10
b 20
c 30
d 40
dtype: int64删除后的 Series:
b 20
d 40
dtype: int64
示例 4:inplace=True
直接修改原 Series
import pandas as pd# 创建一个 Series
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])# 删除标签为 'c' 的行,并直接修改原 Series
s.drop(labels='c', inplace=True)print("修改后的 Series:")
print(s)
结果:
修改后的 Series:
a 10
b 20
d 40
dtype: int64
示例 5:处理不存在的标签(errors='ignore'
)
import pandas as pd# 创建一个 Series
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])# 尝试删除不存在的标签 'x',并忽略错误
result = s.drop(labels='x', errors='ignore')print("原 Series:")
print(s)
print("\n删除后的 Series:")
print(result)
结果:
原 Series:
a 10
b 20
c 30
d 40
dtype: int64删除后的 Series:
a 10
b 20
c 30
d 40
dtype: int64
注意事项
- 如果
labels
或index
中的标签不存在,且errors='raise'
(默认),则会抛出KeyError
。 - 对于 Series,
axis
参数只能是0
,因为 Series 只有一列。 - 如果需要对 DataFrame 进行操作,
drop()
方法可以删除行或列(通过axis
参数指定)。
通过 drop()
方法,可以方便地从 Series 中删除不需要的数据,同时保持数据的整洁性。