当前位置: 首页 > 面试题库 >

通过pandas中的标签选择多列

齐博厚
2023-03-14
问题内容

我一直在寻找通过python文档和论坛选择列的方法,但是索引列的每个示例都过于简单。

假设我有一个10 x 10的数据

df = DataFrame(randn(10, 10), index=range(0,10), columns=['A', 'B', 'C', 'D','E','F','G','H','I','J'])

到目前为止,所有文档都提供了一个简单的索引编制示例,例如

subset = df.loc[:,'A':'C']

要么

subset = df.loc[:,'C':]

但是当我尝试索引多个非连续列时出现错误

subset = df.loc[:,('A':'C', 'E')]

如果要选择A到C,E和G到我列,如何在Pandas中建立索引?看来这种逻辑将不起作用

subset = df.loc[:,('A':'C', 'E', 'G':'I')]

我觉得解决方案非常简单,但是我无法解决此错误。谢谢!


问题答案:

基于名称或标签的(使用正则表达式语法)

df.filter(regex='[A-CEG-I]')   # does NOT depend on the column order

请注意,此处允许使用任何正则表达式,因此此方法可能非常通用。例如,如果您希望所有以大写字母或小写字母“ A”开头的列,则可以使用:
df.filter(regex='^[Aa]')

基于位置(取决于列顺序)

df[ list(df.loc[:,'A':'C']) + ['E'] + list(df.loc[:,'G':'I']) ]

请注意,与基于标签的方法不同,此方法仅在您的列按字母顺序排序时才有效。但是,这不一定是问题。例如,如果您的列转到['A','C','B'],则可以'A':'C'在上方替换为'A':'B'

漫漫长路

为了完整起见,@ Magdalena总是显示简单地单独列出每一列的选项,尽管随着列数的增加它可能会更加冗长:

df[['A','B','C','E','G','H','I']]   # does NOT depend on the column order

以上任何方法的结果

          A         B         C         E         G         H         I
0 -0.814688 -1.060864 -0.008088  2.697203 -0.763874  1.793213 -0.019520
1  0.549824  0.269340  0.405570 -0.406695 -0.536304 -1.231051  0.058018
2  0.879230 -0.666814  1.305835  0.167621 -1.100355  0.391133  0.317467


 类似资料:
  • 我一直在寻找通过python文档和论坛来选择列的方法,但是关于列索引的每个示例都过于简单。 假设我有一个10x10的数据帧 到目前为止,给出的所有文档只是一个简单的索引示例,如

  • 我正在Eclipse中执行动态web项目 我在我的jsp页面中使用下拉列表 例如 但我需要为每个选项存储多个值,以便有任何解决方案。。?? 我需要如果用户选择第一个选项,我需要多个选项值 指-- 当用户选择该选项时,我需要4个不同的值,以便有任何解决方案,或者在jsp中有任何替代方案可用于执行该任务。。。??

  • 问题内容: 我有以下pd.DataFrame: 它具有带有和层次结构级别的MultiIndex列。该标签从0到n,并为每个标签,有两个和列。 我想子选择此DataFrame的所有(或)列。 问题答案: 有一种方法可以与布尔索引一起使用,以获得预期的结果。

  • 本文向大家介绍Vue实现多标签选择器,包括了Vue实现多标签选择器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Vue实现多标签选择器展示的具体代码,供大家参考,具体内容如下 实现效果 实现代码 标签筛选的数据格式 data.js 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我想选择多个列从SqLite通过房间库在Android SDK环境。下面是选择它的查询。@query("SELECT ID,消息,时间戳从Chat_MessageWHERE group pID=: group pID ORDER BY时间戳DESC LIMIT 1")公共列表get_last_msg_ID_timestamp(String group pID);我的Last_Msg_Detail类

  • 问题内容: 这似乎很基本,但我无法弄清楚。 我有一个表“ item_tags”,我想选择所有与标签1和2匹配的项目(例如,每个项目都必须同时具有两个标签)。 我将如何在mysql中执行此操作? 创建表是: 谢谢! 问题答案: 使用: 您需要定义GROUP BY和HAVING子句,并且不同标签ID的数量必须等于您在IN子句中指定的标签数。