2017-06-18 17 views
2

这里对熊猫很新颖 我想搜索一个.pkl文件中的数据库。 我已经加载.pkl文件并将其存储在名为load_data的变量中。 现在,我需要接受使用原始输入的字符串输入,并在我的数据集的特定列“SMILES”中搜索字符串。如果字符串匹配,我需要显示整行,即与该行对应的所有列值。 这是可能的,如果是这样,我应该怎么做呢?如何搜索熊猫数据框中特定列中的字符串值,如果存在,给出数据框中该行的输出?

+0

欢迎栈溢出,请告诉我们你到目前为止做了什么,添加一些代码和结果。请务必阅读[如何创建最小,完整和可验证的示例](https://stackoverflow.com/help/mcve) – lordrhodos

回答

3

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

如果只需要检查字符串:

#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 

或者,如果需要检查子字符串中使用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 
+0

谢谢您的回复! \ –

+0

它是如何工作的? – jezrael

+0

我真的需要在数据帧格式中处理它。所以我想将输入的查询字符串搜索到特定的SMILES列。 –

相关问题