熊猫从列名称不同的行中选择数据

时间:2019-02-13 18:23:39

标签: python pandas

我有多个表,这些表是根据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%列执行查询?

1 个答案:

答案 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

文档:anyisin


旧答案

只需将列与您的值匹配:

>>> 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