如何在 Pandas 系列中删除具有重复索引的行?
通过在 pandas 系列构造函数中使用 duplicated() 方法,我们可以轻松识别系列对象索引中的重复值。duplicated() 方法用于识别系列对象中的重复值。
duplicated() 方法将返回一个包含布尔值的系列。布尔值 False 表示单个出现的值,即唯一值。重复值用布尔值 True 表示。
示例 1
在这里,我们将看到如何删除具有重复索引的系列对象的行。
# importing pandas package import pandas as pd #create series series = pd.Series(["a", "b", "c", "d", "e"],index=[1, 2, 1, 3, 2]) print(series) # getting the index data index = series.index # removing duplicate indices separately result = series[~index.duplicated(keep="first")] print(result)
解释
最初,我们使用 pandas.Series() 函数创建了一个 pandas 系列对象,其索引标签为 [1, 2,1, 3, 2]。然后,我们对索引数据应用 duplicated() 方法以识别重复标签。
之后,我们应用“~”反转结果布尔值,并将此数据发送到原始系列作为子集,以获取一个没有任何重复索引的新系列对象。
输出
输出如下所示:
1 a 2 b 1 c 3 d 2 e dtype: object 1 a 2 b 3 d dtype: object
在上面的输出块中,我们可以看到原始系列对象以及没有重复标签的结果系列对象。
示例 2
让我们再举一个例子,删除具有重复索引的系列对象的行。
# importing package import pandas as pd import numpy as np # creating pandas series series = pd.Series(np.random.randint(1,100,10), index=["a", "b", "a", "d", "c", "e", "f", "c", "d", "e"]) print(series) # getting the index data index = series.index # removing duplicate indices separately result = series[~index.duplicated(keep="first")] print(result)
解释
最初,我们创建了带有标记索引数据的系列对象,然后应用 duplicated() 方法来识别重复标签。
输出
输出如下所示:
a 66 b 73 a 83 d 63 c 23 e 56 f 55 c 22 d 26 e 20 dtype: int32 a 66 b 73 d 63 c 23 e 56 f 55 dtype: int32
标签 a、d、c、e 在初始系列对象中出现不止一次,并且这些行在结果系列对象中被删除。
广告