【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 中删除不需要的数据,同时保持数据的整洁性。
