如何在pandas数据框中的特定列中搜索字符串值,如果存在,则给出数据框中存在的该行的输出?

Dev*_*pta 5 search loops pandas sklearn-pandas

我希望搜索一个.pkl文件中的数据库。

我已经加载了.pkl文件,并将其存储在名为load_data的变量中。

现在,我需要使用原始输入来接受字符串输入,并在SMILES数据集的一个特定列' '中搜索该字符串。

如果字符串匹配,我需要显示整行,即与该行相对应的所有列值。

那有可能吗,如果可以,我应该怎么做?

jez*_*ael 8

使用boolean indexing该函数返回所有匹配的行:

df = pd.DataFrame({'a': [1,3,4],
                      'SMILES': ['a','dd b','f'],
                     'c': [1,2,0]})
print (df)
  SMILES  a  c
0      a  1  1
1   dd b  3  2
2      f  4  0
Run Code Online (Sandbox Code Playgroud)

如果仅需要检查字符串:

#raw_input for python 2, input for python 3
a = input('Enter String for SMILES columns: ') # f
#Enter String for SMILES columns: f
print (df[df['SMILES'] == a])
  SMILES  a  c
2      f  4  0
Run Code Online (Sandbox Code Playgroud)

或者,如果您需要检查子字符串,请使用str.contains

a = input('Enter String for SMILES columns: ') # b 
print (df[df['SMILES'].str.contains(a)])
#Enter String for SMILES columns: b
  SMILES  a  c
1   dd b  3  2
Run Code Online (Sandbox Code Playgroud)