python 函数之 isin() 与 ~isin() DataFrame
python 函数之 isin() 与 ~isin() DataFrame
·
1. 生成测试数据集
import random
import pandas as pd
names = ['南宫婉','雅菲','余靖秋','姜立','小舞','胡列娜','比比东','云韵','美杜莎','焰灵姬']
df = pd.DataFrame(
{
"name" :names,
"age" :[random.randint(18,25) for i in range(len(names))],
"height":[round(random.uniform(1.6,1.75),2) for i in range(len(names))],
"weight":[random.randint(45,50) for i in range(len(names))],
}
)
剔除 name 不为[‘云韵’,‘美杜莎’],或age 不为[19,20] 的数据
df2[~(df2['name'].isin(['云韵','美杜莎']) | df2['age'].isin([19,20]))]
Out[13]:
name age height weight
1 雅菲 24 1.66 46
2 余靖秋 24 1.67 47
4 小舞 18 1.66 45
5 胡列娜 23 1.73 48
2. isin()
2.1 单一条件筛选
- 筛选 name 包含[‘云韵’,‘美杜莎’] 的数据
filt = df['name'].isin(['云韵','美杜莎'])
df[filt]
2.2 多个条件筛选
- 筛选 name 包含[‘云韵’,‘美杜莎’] 或 最小age
filt_1 = df['name'].isin(['云韵','美杜莎'])
filt_2 = df['age'] == df['age'].min()
df[filt_1 | filt_2]
3. ~isin()
- 结果与 isin() 相反
- 筛选 name 不包含[‘云韵’,‘美杜莎’] 的数据
filt = ~df['name'].isin(['云韵','美杜莎'])
df[filt]
参考资料
[1] python DataFrame isin() 与 ~isin() 2022.2;
[2] 官方链接;
更多推荐
所有评论(0)