【Pandas】pandas Series isin

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 来说,通常是删除行)
Series.droplevel(level[, axis]) 用于从多层索引(MultiIndex)的 Series 中删除指定的索引层级
Series.drop_duplicates(*[, keep, inplace, …]) 用于从 Series 中删除重复的值
Series.duplicated([keep]) 用于检测 Series 中的重复值
Series.equals(other) 用于比较两个 Series 对象是否完全相等的方法
Series.first(offset) 用于根据日期偏移量(offset)选择 Series 中时间序列数据的初始部分
Series.head([n]) 用于返回 Series 的前 n 个元素
Series.idxmax([axis, skipna]) 用于返回 Series 中最大值的索引
Series.idxmin([axis, skipna]) 用于返回 Series 中最小值的索引
Series.isin(values) 用于检查 Series 中的每个元素是否存在于给定的值集合 values

pandas.Series.isin

当然,pandas.Series.isin(values) 方法用于检查 Series 中的每个元素是否存在于给定的值集合 values 中。这个方法返回一个布尔 Series,其中每个元素表示 Series 中对应位置的元素是否在 values 中。

详细描述

pandas.Series.isin(values) 方法的参数:

  • values: 一个列表、集合、Series 或其他可迭代对象,包含要检查的值。
返回值
  • 返回一个布尔 Series,其中每个元素为 TrueFalse,表示 Series 中对应位置的元素是否在 values 中。
示例代码
import pandas as pd

# 创建一个示例 Series
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = pd.date_range('2023-01-01', periods=10, freq='D')
series = pd.Series(data, index=index)

print("Original Series:")
print(series)

# 定义要检查的值
values_to_check = [20, 40, 60, 80]

# 使用 isin 方法检查 Series 中的元素是否在 values_to_check 中
isin_result = series.isin(values_to_check)
print("\nisin Result:")
print(isin_result)

# 使用 isin 方法的结果进行筛选
filtered_series = series[isin_result]
print("\nFiltered Series (only values in values_to_check):")
print(filtered_series)
结果输出
Original Series:
2023-01-01     10
2023-01-02     20
2023-01-03     30
2023-01-04     40
2023-01-05     50
2023-01-06     60
2023-01-07     70
2023-01-08     80
2023-01-09     90
2023-01-10    100
Freq: D, dtype: int64

isin Result:
2023-01-01    False
2023-01-02     True
2023-01-03    False
2023-01-04     True
2023-01-05    False
2023-01-06     True
2023-01-07    False
2023-01-08     True
2023-01-09    False
2023-01-10    False
Freq: D, dtype: bool

Filtered Series (only values in values_to_check):
2023-01-02    20
2023-01-04    40
2023-01-06    60
2023-01-08    80
dtype: int64
解释
  • series.isin(values_to_check) 返回一个布尔 Series,其中每个元素表示 series 中对应位置的元素是否在 values_to_check 中。
  • filtered_series 是通过布尔索引从 series 中筛选出的元素,这些元素在 values_to_check 中。
注意事项
  • values 可以是列表、集合、Series 或其他可迭代对象。
  • 如果 values 是一个集合,isin 方法的性能会更好,因为集合的查找操作平均时间复杂度为 O(1)。
示例:使用集合作为 values
# 使用集合作为 values
values_to_check_set = {20, 40, 60, 80}

# 使用 isin 方法检查 Series 中的元素是否在 values_to_check_set 中
isin_result_set = series.isin(values_to_check_set)
print("\nisin Result (using set):")
print(isin_result_set)
结果输出
isin Result (using set):
2023-01-01    False
2023-01-02     True
2023-01-03    False
2023-01-04     True
2023-01-05    False
2023-01-06     True
2023-01-07    False
2023-01-08     True
2023-01-09    False
2023-01-10    False
Freq: D, dtype: bool
解释
  • 使用集合作为 values 时,isin 方法的性能会更好。

你可能感兴趣的:(Pandas,Series,pandas,python)