
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
微信扫一扫
支付宝扫一扫