Pandas技巧

Pandas_Select_Data_isin

2020-03-31  本文已影响0人  Kaspar433

Pandas_Select_Data_isin

Series 对象可以使用isin()方法,返回一个布尔数组,然后再选择数据。

import pandas as pd
import numpy as np
​
iris = pd.read_csv('iris.csv')
iris.head(2)

out:
sepal_length    sepal_width petal_length    petal_width species
0   5.1 3.5 1.4 0.2 setosa
1   4.9 3.0 1.4 0.2 setosa
iris.species.unique()

out:
array(['setosa', 'versicolor', 'virginica'], dtype=object)
iris[iris.species.isin(['setosa','virginica'])]

out:
sepal_length    sepal_width petal_length    petal_width species
0   5.1 3.5 1.4 0.2 setosa
1   4.9 3.0 1.4 0.2 setosa
2   4.7 3.2 1.3 0.2 setosa
3   4.6 3.1 1.5 0.2 setosa
4   5.0 3.6 1.4 0.2 setosa
... ... ... ... ... ...
145 6.7 3.0 5.2 2.3 virginica
146 6.3 2.5 5.0 1.9 virginica
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
100 rows × 5 columns
iris[iris.index.isin(list(range(0,100,2)))].head()

out:
sepal_length    sepal_width petal_length    petal_width species
0   5.1 3.5 1.4 0.2 setosa
2   4.7 3.2 1.3 0.2 setosa
4   5.0 3.6 1.4 0.2 setosa
6   4.6 3.4 1.4 0.3 setosa
8   4.4 2.9 1.4 0.2 setosa

DataFrame也有一个isin()方法。调用时isin,将一组值作为数组或字典传递。如果values是一个数组,则isin返回与原始DataFrame形状相同的布尔数据框,并在元素序列中的任何位置使用True。

values = [5.1, 3.4, 1.3, 'setosa']
iris.head().isin(values)

out:
sepal_length    sepal_width petal_length    petal_width species
0   True    False   False   False   True
1   False   False   False   False   True
2   False   False   True    False   True
3   False   False   False   False   True
4   False   False   False   False   True

通常,需要将某些值与某些列匹配。只需将值设置dict为键为列的位置,值即为要检查的项目列表

values = {'sepal_length': [5.1, 3.4], 'species': ['setosa', 'virginica']}
iris.head().isin(values)

out:
sepal_length    sepal_width petal_length    petal_width species
0   True    False   False   False   True
1   False   False   False   False   True
2   False   False   False   False   True
3   False   False   False   False   True
4   False   False   False   False   True
上一篇下一篇

猜你喜欢

热点阅读