如何检查pandas数据帧中是否存在具有特定列值的行

AMM*_*AMM 5 python dataframe pandas

对熊猫来说很新鲜.

如果存在具有特定列值的行,是否有办法检查给定的pandas数据帧.假设我有一个"名称"列,我需要检查某个名称是否存在.

一旦我这样做,我将需要进行类似的查询,但一次只有一堆值.我读到有'isin',但我不确定如何使用它.因此,我需要进行一个查询,以便获得所有具有"Name"列的行,这些行与大量名称中的任何值匹配.

Aka*_*all 9

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.arange(8).reshape(4,2), columns=['name', 'value'])
Run Code Online (Sandbox Code Playgroud)

结果:

>>> df
   name  value
0     0      1
1     2      3
2     4      5
3     6      7
>>> any(df.name == 4)
True
>>> any(df.name == 5)
False
Run Code Online (Sandbox Code Playgroud)

第二部分:

my_data = np.arange(8).reshape(4,2)
my_data[0,0] = 4

df = pd.DataFrame(data = my_data, columns=['name', 'value'])
Run Code Online (Sandbox Code Playgroud)

结果:

>>> df.loc[df.name == 4]
   name  value
0     4      1
2     4      5
Run Code Online (Sandbox Code Playgroud)

更新:

my_data = np.arange(8).reshape(4,2)
my_data[0,0] = 4

df = pd.DataFrame(data = my_data, index=['a', 'b', 'c', 'd'], columns=['name', 'value'])
Run Code Online (Sandbox Code Playgroud)

结果:

>>> df.loc[df.name == 4]  # gives relevant rows
   name  value
a     4      1
c     4      5  
>>> df.loc[df.name == 4].index  # give "row names" of relevant rows
Index([u'a', u'c'], dtype=object)
Run Code Online (Sandbox Code Playgroud)