
Pandas数据框:基于指定列表筛选行和列
本文介绍如何利用Pandas库高效筛选数据框的行和列,筛选条件来自一个预定义的列表。
Pandas的isin()函数是实现此功能的关键。isin()函数用于判断Series中的元素是否包含在指定列表中。
步骤:
加载数据: 假设你的数据框命名为df。
创建筛选列表: 创建一个包含需要筛选的名称的列表,例如names_list = ['a1', 'a2']。
筛选行: 使用isin()函数筛选包含指定名称的行:
<code class="python">df[df['列名'].isin(names_list)] </code>
将列名替换为包含需要筛选名称的列名。此代码返回一个新的数据框,只包含列名中值属于names_list的行。
筛选列: 使用filter()函数和正则表达式筛选包含指定名称的列:
<code class="python">df.filter(regex="(^|\s)" + '|'.join(names_list) + "($|\s)", axis=1)</code>
这行代码使用正则表达式,确保只选择列名完全匹配或包含names_list中元素的列。axis=1指定操作的是列。
示例:
假设数据框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中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号