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

pandasserver side programmingprogramming

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

我们可以在基于标签和基于位置索引的系列对象上使用 drop() 方法。

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

示例 1

# 导入 pandas 包
import pandas as pd

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

# 删除元素列表
result = sr.drop([2,4,6])

# 显示输出
print(result)

解释

在下面的示例中,我们将从 Series 对象中删除一组行。最初,我们创建了一个带有整数值 python 列表的 pandas 系列,并且索引标签是自动创建的范围索引值(基于位置的索引值)。

输出

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 列表对象指定元素的索引值,从系列对象"sr"中删除了一组行。在此示例中,行 [2,4,6] 被删除。

示例 2

# 导入 pandas 包
import pandas as pd

# 创建 Series 对象
sr = pd.Series([43, 3, 16, 84, 69, 20, 37, 44, 94, 48], index=list("ABCDEFGHIJ"))
print(&39;Series object:&39;,sr)

# 删除元素列表
result = sr.drop([&39;D&39;, &39;E&39;, &39;J&39;])

# 显示输出
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

我们已成功从标签系列对象"sr"中删除行"D"、"E"、"J"。


相关文章