我有多个表,这些表是根据txt文件构建的。它们具有不同名称的列数。我最感兴趣的列有名称,例如“ data”或“ data7” ...“ data0”或“ data15” ...“ data0”。
我需要从这些表中选择带有“数据”列中某些特定值的行,例如data == 1234,但也要显示其他列信息,例如colA,colB以及这些“数据”列。
我到目前为止所拥有的:
result = df.filter(regex ='data | colA | colB | colC')过滤掉我需要查看的列。
我需要的:
从结果数据框中,我需要选择条目,以便 data 具有特定值。问题是Internet教程给出了诸如result [(result.data == abc)]之类的查询,并且错误地指出“未找到数据列”。
是否可以对结果数据框的%data%列执行查询?
答案 0 :(得分:2)
编辑:要在 any 列中查找值,可以使用... 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