pandas筛选数据的20种方法

Pandas 提供了丰富的功能用于筛选数据,以下列举 20 种常用方法:

假设我们有一个名为 df 的 DataFrame,包含以下数据:

图片

  1. 使用布尔索引

直接使用条件表达式筛选数据:

# 年龄大于 25 岁的
df[df['age'] > 25]

2. 使用 isin 方法

筛选属于指定列表中的值:

# 城市为 'New York' 或 'London' 的
df[df['city'].isin(['New York', 'London'])]

3. 使用 ~ 取反

筛选不满足条件的数据:

# 城市不是 'New York' 的
df[~df['city'].isin(['New York'])]
 

4. 使用 query 方法

使用字符串表达式筛选数据:

# 年龄大于 25 岁且性别为男性的
df.query("age > 25 and gender == 'M'")
 

5. 使用 loc 属性

根据标签筛选数据:

# 索引为 1 到 3 的行
df.loc[1:3]
 

6. 使用 iloc 属性

根据位置筛选数据:

# 前 3 行
df.iloc[:3]
 

7. 使用 head 方法

筛选前几行数据:

# 前 2 行
df.head(2)
 

8. 使用 tail 方法

筛选后几行数据:

# 后 2 行
df.tail(2)

9. 使用 sample 方法

随机筛选数据:

# 随机抽取 2 行
df.sample(2)

10. 使用 nlargest 方法

筛选最大的 n 个值:

# 年龄最大的 2 个人
df.nlargest(2, 'age')

11. 使用 nsmallest 方法

筛选最小的 n 个值:

# 年龄最小的 2 个人
df.nsmallest(2, 'age')

12. 使用 between 方法

筛选在指定范围内的值:

# 年龄在 25 到 30 岁之间的
df[df['age'].between(25, 30)]

13. 使用 startswith 方法

筛选以指定字符串开头的值:

# 名字以 'A' 开头的
df[df['name'].str.startswith('A')]

14. 使用 endswith 方法

筛选以指定字符串结尾的值:

# 城市以 'k' 结尾的
df[df['city'].str.endswith('k')]

15. 使用 contains 方法

筛选包含指定字符串的值:

# 城市包含 'o' 的
df[df['city'].str.contains('o')]

16. 使用正则表达式

使用 str.match 方法筛选匹配正则表达式的值:

# 名字匹配正则表达式 '^B.*' 的
df[df['name'].str.match(r'^B.*')]

17. 使用 lambda 函数

使用 apply 方法应用自定义筛选逻辑:

# 筛选年龄为偶数的
df[df['age'].apply(lambda x: x % 2 == 0)]

18. 根据多列的值进行筛选

结合多个条件表达式:

# 年龄大于 25 岁且城市为 'New York' 的
df[(df['age'] > 25) & (df['city'] == 'New York')]

19. 根据索引和列名筛选

结合 loc 和条件表达式:

# 索引为 1 到 3,且年龄大于 25 的
df.loc[1:3, df['age'] > 25]

20. 根据索引和列位置筛选

结合 iloc 和条件表达式:

# 前 3 行,且第 2 列 (age) 大于 25 的
df.iloc[:3, df.columns.get_loc('age') > 25]
 

以上只是 Pandas 筛选数据的部分常用方法,你可以根据实际需求组合使用这些方法,或者探索更多高级用法。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

途途途途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值