web-dev-qa-db-ja.com

pandasデータフレーム内の特定の列内の文字列値を検索し、存在する場合は、データフレーム内に存在するその行の出力を提供する方法は?

.pklファイルにあるデータベースを検索したいと思います。

.pklファイルをロードし、load_dataという名前の変数に保存しました。

ここで、生の入力を使用して文字列入力を受け入れ、データセットの1つの特定の列 'SMILES'で文字列を検索する必要があります。

文字列が一致する場合は、行全体、つまりその行に対応するすべての列値を表示する必要があります。

それは可能ですか?もしそうなら、どうすればいいですか?

5

使用する - 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
9
jezrael