df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 'B': 'one one two three two two one three'.split(), 'C': np.arange(8), 'D': np.arange(8) * 2})
mask = df['A'] == 'foo' result = df[mask]
2. loc方法
loc方法可以根据标签来选择行,结合布尔索引可以更精确地选择行。
1
result = df.loc[df['A'] == 'foo']
3. isin方法
当需要选择列值在某个可迭代对象中的行时,可以使用isin方法。
1
result = df.loc[df['B'].isin(['one', 'three'])]
4. query方法
query方法提供了一种简洁的方式来编写查询条件。
1
result = df.query('A == "foo"')
5. np.where方法
使用numpy的where函数可以实现更高效的筛选。
1 2
import numpy as np result = df.iloc[np.where(df.A.values == 'foo')]
6. groupby方法
通过groupby和get_group方法可以选择特定列具有特定值的行。
1
result = df.groupby('B').get_group('two').reset_index(drop=True)
# 创建DataFrame df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 'B': 'one one two three two two one three'.split(), 'C': np.arange(8), 'D': np.arange(8) * 2})