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

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

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

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

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

步骤:

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

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

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

df[df['列名'].isin(names_list)] 

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

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

df.filter(regex="(^|s)" + '|'.join(names_list) + "($|s)", axis=1)

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

示例:

假设数据框df如下:

   uid  score  other_col0  a1     1        x1  a2     4        y2  b1     2        z3  a3     3        w

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

则:

df[df['uid'].isin(names_list)] 

将返回:

   uid  score  other_col0  a1     1          x1  a2     4          y

而:

df.filter(regex="(^|s)" + '|'.join(names_list) + "($|s)", axis=1)

将返回:

   uid0  a11  a22  b13  a3

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1356353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Python中变量比较:为什么1.1 is 1.1有时为True有时为False?
上一篇 2025年12月13日 19:44:20
如何使用Pandas根据配置列表筛选DataFrame的行和列?
下一篇 2025年12月13日 19:44:34

相关推荐

发表回复

登录后才能评论
关注微信