Как найти подходящие элементы в файле?

Есть файл base.txt, который содержит название элемента, межплоскостное расстояние d и интенсивность I:

element d I
Fe 2.0268 100
Fe 1.4332 19
Fe 1.1702 30
Fe 1.0134 9
Fe 0.9064 12
Fe 0.8275 6
Si 3.138 100
Si 1.92 60
Si 1.638 35
............
SiO2 1.279 3
SiO2 1.235 1
SiO2 1.203 1
SiO2 1.181 2
SiO2 1.095 3

Как сделать так, чтобы вывести элемент, который подходит введенным пользователем значениям d и I. При этом, значение d - приблизительно равное введенному значению.

Пример:

Ввод значений

d = 1.18
I = 2

Вывод программы

SiO2

Заранее всем спасибо


Ответы (1 шт):

Автор решения: CrazyElf

Полный пример с Pandas, частично использована подсказка splash58. И я добавил элемент в данные с таким же I, чтобы проверить, что ищется именно ближайшее:

from io import StringIO
import pandas as pd

data = """
element d I
Fe 2.0268 100
Fe 1.4332 19
Fe 1.1702 30
Fe 1.0134 9
Fe 0.9064 12
Fe 0.8275 6
Si 3.138 100
Si 1.92 60
Si 1.638 35
SiO2 1.279 3
SiO2 1.235 1
SiO2 1.203 1
SiO2 1.181 2
SiO3 1.191 2
SiO2 1.095 3"""

df = pd.read_csv(StringIO(data), sep='\s+')

d = 1.18
I = 2
print(df.loc[(df.loc[df['I'] == I, 'd']-d).abs().idxmin(), 'element'])
# SiO2
→ Ссылка