如何用Pandas根据指定列表筛选数据框的行和列?

聖光之護
发布: 2025-02-19 22:02:01
原创
1102人浏览过

如何用pandas根据指定列表筛选数据框的行和列?

Pandas数据框:基于指定列表筛选行和列

本文介绍如何利用Pandas库高效筛选数据框的行和列,筛选条件来自一个预定义的列表。

Pandas的isin()函数是实现此功能的关键。isin()函数用于判断Series中的元素是否包含在指定列表中。

步骤:

  1. 加载数据: 假设你的数据框命名为df

  2. 创建筛选列表: 创建一个包含需要筛选的名称的列表,例如names_list = ['a1', 'a2']

  3. 筛选行: 使用isin()函数筛选包含指定名称的行:

    <code class="python">df[df['列名'].isin(names_list)] </code>
    登录后复制

    列名替换为包含需要筛选名称的列名。此代码返回一个新的数据框,只包含列名中值属于names_list的行。

  4. 筛选列: 使用filter()函数和正则表达式筛选包含指定名称的列:

    <code class="python">df.filter(regex="(^|\s)" + '|'.join(names_list) + "($|\s)", axis=1)</code>
    登录后复制

    这行代码使用正则表达式,确保只选择列名完全匹配或包含names_list中元素的列。axis=1指定操作的是列。

    MacsMind
    MacsMind

    电商AI超级智能客服

    MacsMind 131
    查看详情 MacsMind

示例:

假设数据框df如下:

<code>   uid  score  other_col
0  a1     1        x
1  a2     4        y
2  b1     2        z
3  a3     3        w</code>
登录后复制

以及names_list = ['a1', 'a2']

则:

<code class="python">df[df['uid'].isin(names_list)] </code>
登录后复制

将返回:

<code>   uid  score  other_col
0  a1     1          x
1  a2     4          y</code>
登录后复制

而:

<code class="python">df.filter(regex="(^|\s)" + '|'.join(names_list) + "($|\s)", axis=1)</code>
登录后复制

将返回:

<code>   uid
0  a1
1  a2
2  b1
3  a3</code>
登录后复制

(注意:此例中,因为只有uid列包含names_list中的值,所以只返回uid列。如果其他列名也包含'a1'或'a2',则这些列也会被返回。)

通过以上方法,你可以灵活地根据指定的名称列表从Pandas数据框中筛选出所需的行和列。 记住根据你的实际数据调整列名和筛选列表。

以上就是如何用Pandas根据指定列表筛选数据框的行和列?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号