原始数据
假设有以下原始df:
import pandas as pd
df = pd.DataFrame([['a1','b2'],['c1','d3'],['e3','f4']], columns=['x','y'])
print(df)
#df
x y
0 a1 b2
1 c1 d3
2 e3 f4
含有或不含有指定字符串
筛选出所有含有指定字符串的行:
# 找出x列中所有含有a的行:
df[df['x'].str.contains('a')]
#
x y
0 a1 b2
# 找出x列中所有含有1的行:
df[df['x'].str.contains('1')]
#
x y
0 a1 b2
1 c1 d3
# 找出index等于2的行
df[df.index==2]
#
x y
2 e3 f4
筛选中不含有指定字符串的行,加上取反符即可:
# 找出x列中不含有a的行:
df[~df['x'].str.contains('a')]
#
x y
1 c1 d3
2 e3 f4
字段与指定字符串相等的行
筛选出字段与指定字符串相等的行:
df[df['x'].isin(['a1'])]
#
x y
0 a1 b2
df[df.index.isin([1])]
#
x y
1 c1 d3
筛选出字段与指定字符串不相等的行:
df[~df['x'].isin(['a1'])]
#
x y
1 c1 d3
2 e3 f4
小节
本文简介了df指定行的筛选及反向筛选。
主要使用以下方法:
- df[‘column_name’].str.contains(‘substr’)
- df[df[‘column_name’].isin([‘str’])]
当然,这里是以df内元素对象为str举例,如果是其他类型元素使用相应即可。