isin、str.contains 和 if 条件之间的区别?

Jos*_*sta 5 python dataframe

我通常很困惑,如果我想用某些东西过滤数据框列项目,应该isin.str.contains或被if "aa" in df["column"]使用吗?

请告诉我在不同情况下使用哪些?

mrz*_*rzo 3

伊辛

如果您想检查Seriesisin中多个字符串之一的出现情况,请使用:

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.包含

.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)