如果不知道该值属于哪一列,如何选择具有特定值的行?

时间:2019-04-07 11:38:15

标签: python pandas data-science

例如,这是数据框

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
client.connect('example.com',22,'XXXXX','XXXX')
a=input ("enter the file path")
stdin,stdout,stderr=client.exec_command('cd a && pwd')

我想选择所有包含“宽”值的行。让我们假设我不知道,哪一列包含此类值。

这只是一个简化的示例。我需要它以便遍历组织成数组的唯一表值。

1     2
high  wide
high  thin
short wide
short thin

有没有一种方法,而不必为每个值确定一列? 我的意思是,这可能有效

for uv in uniqueValues:
    valueObjects = """select all the rows that contain uv"""

但是我希望有一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:2)

使用boolean indexing

df = df[df.eq('wide').any(axis=1)]
#alternative
#df = df[(df == 'wide').any(axis=1)]
print (df)
       1     2
0   high  wide
2  short  wide

详细信息

首先用DataFrame.eq==比较布尔值DataFrame的所有值:

print (df.eq('wide'))
       1      2
0  False   True
1  False  False
2  False   True
3  False  False

然后通过DataFrame.any对每行至少测试一次True

print(df.eq('wide').any(axis=1))
0     True
1    False
2     True
3    False
dtype: bool