如何从 Pandas Series 对象中删除一组元素?


在 Pandas Series 构造函数中,有一个名为 drop() 的方法,用于从 Pandas Series 对象中删除指定的行。它不会更新原始 Series 对象,而是会返回另一个不包含已删除行的 Series 对象。

我们可以将此 drop() 方法用于基于标签和基于位置索引的 Series 对象。

如果 Series 对象的索引中找不到指定的行标签,则会引发 KeyError。我们可以通过将 errors 参数从 raise 设置为 ignore 来抑制错误。我们还有其他一些参数:labels、axis、level、inplace 和 raise。

示例 1

# import pandas package
import pandas as pd

# Creating Series objects
sr = pd.Series([35, 39, 45, 2, 47, 89, 48, 71, 55, 19])
print('Series object:',sr)

# Remove list of elements
result = sr.drop([2,4,6])

# display output
print(result)

解释

在下面的示例中,我们将从 Series 对象中删除一组行。最初,我们使用 Python 整型列表创建了一个 Pandas Series,索引标签是自动创建的范围索引值(基于位置的索引值)。

输出

Series object:
0 35
1 39
2 45
3  2
4 47
5 89
6 48
7 71
8 55
9 19
dtype: int64

0 35
1 39
3 2
5 89
7 71
8 55
9 19
dtype: int64

我们通过使用 Python 列表对象指定元素的索引值,从 Series 对象“sr”中删除了一组行。在这个例子中,删除了 [2,4,6] 行。

示例 2

# import pandas package
import pandas as pd

# Creating Series objects
sr = pd.Series([43, 3, 16, 84, 69, 20, 37, 44, 94, 48], index=list("ABCDEFGHIJ"))
print('Series object:',sr)

# Remove list of elements
result = sr.drop(['D', 'E', 'J'])

# display output
print(result)

解释

在下面的示例中,我们使用带标签索引创建了一个 Pandas Series。我们通过将标签名称发送到 drop() 方法,从 Series 对象中删除名为“C”的行。

输出

Series object:
A 43
B  3
C 16
D 84
E 69
F 20
G 37
H 44
I 94
J 48
dtype: int64

A 43
B 3
C 16
F 20
G 37
H 44
I 94
dtype: int64

我们已成功从带标签的 Series 对象“sr”中删除了行“D”、“E”、“J”。

更新于:2022年3月9日

946 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.