Как найти подходящие элементы в файле?
Есть файл 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