【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
,其中每个元素为True
或False
,表示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
方法的性能会更好。