如何从 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"。