在 pandas 中,筛选特定行通常有以下几种常见方式,按使用场景从简单到灵活说明:
import pandas as pd
df = pd.DataFrame({
'name': ['A', 'B', 'C'],
'age': [20, 35, 28]
})
# 筛选 age > 25 的行
df_filtered = df[df['age'] > 25]
✅ 支持多个条件(注意加括号):
df[(df['age'] > 25) & (df['name'] != 'C')]
query()(代码更简洁)df_filtered = df.query("age > 25 and name != 'C'")
适合条件较复杂、可读性要求高的场景。
df[df['name'].isin(['A', 'C'])]
反向筛选:
df[~df['name'].isin(['A'])]
df.loc[0] # 第 0 行
df.loc[0:2] # 0~2 行
df.iloc[1:3] # 按位置
df[df['name'].str.contains('A')]
df = df[df['age'] >= 18] # 保留成年
df[df.apply(lambda row: row['age'] % 2 == 0, axis=1)]
| 场景 | 推荐方式 |
|---|---|
| 简单条件 | df[条件] |
| 多条件 | `& / |
| 字符串 | str.contains |
| 可读性高 | query() |
| 批量值 | isin |
如果你有具体数据或筛选规则,可以直接发出来,我可以帮你写精确代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。