我通常很困惑,如果我想用某些东西过滤数据框列项目,应该isin或.str.contains或被if "aa" in df["column"]使用吗?
请告诉我在不同情况下使用哪些?
如果您想检查Series值isin中多个字符串之一的出现情况,请使用:
import pandas as pd
things = pd.Series(['apple', 'banana', 'house', 'car'])
fruits = ['apple', 'banana', 'kiwi']
things.isin(fruits)
Run Code Online (Sandbox Code Playgroud)
输出:
0 True
1 True
2 False
3 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
.str.contains执行相同的操作,但仅针对一个字符串,并且它还匹配字符串的一部分。
things.str.contains('apple')
Run Code Online (Sandbox Code Playgroud)
输出:
0 True
1 False
2 False
3 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
things.str.contains('app')
Run Code Online (Sandbox Code Playgroud)
输出:
0 True
1 False
2 False
3 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
A in series检查是否A在pd.Series 的索引中:
"apple" in things
# Output: False
Run Code Online (Sandbox Code Playgroud)
我们的things系列指数中没有“苹果”,原因很快就明白了:
> things
0 apple
1 banana
2 house
3 car
dtype: object
Run Code Online (Sandbox Code Playgroud)
第一列描述了索引,因此我们可以检查它:
0 in things
# Output: True
Run Code Online (Sandbox Code Playgroud)