Pandas 实现 in 和 not in 的用法及使用心得
Pandas 是 Python 中常用的数据处理库,可以用于数据读取、清洗、转换和统计等操作。在 Pandas 中,in 和 not in 是常用的判断操作符,用于列表或者 Series 中是否包含某个元素,下面详细介绍 Pandas 实现 in 和 not in 的用法及使用心得。
in 和 not in 类似于 Python 内置的 in 和 not in
Pandas 的 in 和 not in 操作符与内置的 in 和 not in 操作符类似,可以用来判断某个元素是否在列表或者 Series 中。以 Series 为例,示例代码如下:
import pandas as pd
# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5])
# in 操作符
print(1 in s)
# 打印 True
# not in 操作符
print(6 not in s)
# 打印 True
在上面的代码中,我们首先创建了一个 Series,然后使用 in 操作符和 not in 操作符分别判断 1 和 6 是否在 Series 中,结果都是 True,证明这两个操作符都成功判断出了元素是否在 Series 中。
Pandas 中 in 和 not in 可以用于 Series 和 Dataframe
除了 Series,Pandas 中的 in 和 not in 操作符也可以用于 DataFrame 中,同样具有判断元素是否在 DataFrame 中的功能。以 DataFrame 为例,示例代码如下:
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# in 操作符
print(1 in df)
# 打印 False,因为 1 不在 DataFrame 的列名中
# not in 操作符
print('C' not in df)
# 打印 True,因为 'C' 不在 DataFrame 的列名中
在上面的代码中,我们首先创建了一个 DataFrame,然后使用 in 操作符和 not in 操作符分别判断 1 和 ‘C’ 是否在 DataFrame 中,注意到在 DataFrame 中使用操作符判断的是列名是否存在而非列值是否存在,由于列名中不存在 1,因此判断 1 不在 DataFrame 中。
Pandas 中 in 和 not in 可以用于查询筛选数据
除了判断元素是否在列表中,Pandas 中的 in 和 not in 操作符还可以用于查询和筛选数据。以 Series 为例,示例代码如下:
import pandas as pd
# 创建一个 Series
s = pd.Series(['apple', 'banana', 'orange'])
# 使用 in 操作符筛选数据
s_in = s[s.isin(['apple', 'orange'])]
print(s_in)
# 输出
# 0 apple
# 2 orange
# dtype: object
# 使用 not in 操作符筛选数据
s_notin = s[~s.isin(['apple', 'orange'])]
print(s_notin)
# 输出
# 1 banana
# dtype: object
在上面的代码中,我们首先创建了一个 Series,然后使用 s.isin([‘apple’, ‘orange’]) 得到的是一个布尔类型的 Series,表示原 Series 中的每个元素是否包含在 [‘apple’, ‘orange’] 中,接着使用 [] 操作符得到包含 apple 和 orange 的 Series s_in,使用 ~ 操作符得到不包含 apple 和 orange 的 Series s_notin,通过这种方式可以方便地进行数据的查询和筛选。
总结
Pandas 中的 in 和 not in 操作符非常类似于 Python 内置的操作符,可以用于判断元素是否在列表或者 Series 中,也可以用于查询和筛选数据。需要注意的是,在 DataFrame 中使用操作符判断的是列名是否存在而非列值是否存在,这是使用过程中需要注意的一个细节。