python - Pandas 从列名不同的行中选择数据
问题描述
我有多个表,这些表是从 txt 文件构建的。它们有不同数量的不同名称的列。我最感兴趣的列有名称,比如“data”或“data7”...“data0”或“data15”...“data0”。
我需要从这些表中选择具有“数据”列中的某些特定值的行,例如 data==1234,但还想显示其他列信息,例如 colA、colB 以及这些“数据”列。
到目前为止我所拥有的:
result = df.filter(regex='data|colA|colB|colC') 过滤掉我需要查看的列。
我需要什么:
从结果数据框中,我需要选择条目以使数据具有特定值。问题是互联网教程给出了像 result[(result.data == abc)] 这样的查询,并且错误地显示“找不到数据列”。
有没有办法对结果数据框的 %data% 列执行查询?
解决方案
编辑:要在任何列中查找值,您可以使用... any
!
>>> df
col1 col2 data1 data2
0 a e 1234 12
1 b f 5678 34
2 c g 9101 1234
3 d h 1121 78
>>> df.filter(regex='data1|data2|col1')[df.isin([1234]).any(axis=1)]
col1 data1 data2
0 a 1234 12
2 c 9101 1234
旧答案
只需将该列与您的值匹配:
>>> df
col1 col2 data1 data2
0 a e 1234 12
1 b f 5678 34
2 c g 9101 56
3 d h 1234 78
>>> df.filter(regex='data1|data2|col1')[df['data1'] == 1234]
col1 data1 data2
0 a 1234 12
3 d 1234 78
推荐阅读
- git - 使用 git 命令获取自另一个分支的标签以来的提交次数
- javascript - javascript中符号数据类型的用例是什么?
- python - 使用嵌套循环 - for 循环
- android - 使用导航图时未调用android onpause
- autodesk-forge - Forge 教程不返回任何集线器
- r - “没有这样的文件或目录”警告:参数 (1)/DESCRIPTION
- php - php 无法上传文件 - 缺少一个临时文件夹
- tensorflow - Tensorflow 迭代自定义层中的通道
- java - java.lang.NoClassDefFoundError: java/sql/Driver
- javascript - P5.js 中的步进音序器时序错误