Функция моего кода заключается в получении значений в пределах определенного допуска (допуск 100 ppm) от известных значений.
Данные, которые нужно собрать, выглядят следующим образом:
col1 col2
1000 10000
1050 20000
2000 30000
и т. Д. (До 400 строк).Ниже приведен фрагмент кода, который выбирается из списка раскладки (значения похожи на col1):
for files in file_list:
df = pd.read_csv(files, engine='python')
matches = pd.DataFrame(index=pickuplist['mass'],
columns=df.set_index(list(df.columns)).index,
dtype=bool)
for index, exp_mass, intensity in df.itertuples():
matches[exp_mass] = abs(matches.index - exp_mass)/matches.index < ppm/1e6
if (len(matches[exp_mass])== 0):
matches[exp_mass] = None
results3 = matches.any().reset_index(name='a')[matches.any().values]
Структура каждого файла аналогична приведенной выше таблице примеров (col1, col2 и пустой столбец).).Список подбора выглядит следующим образом:
col1
1000.04
1050.02
2000.04
Текущий код при запуске выбирает нужные значения и выводит их как:
col1 col2
1000.04 10000
1050.02 20000
2000.04 30000
Однако я хочу оставить пробелы, если их нетвзял.Например, если в списке извлечения содержится значение в столбце col1, равное 1647,58, и в данных нет ничего, превышающего допуск 100 ppm, равный 1647,58, то соответствующий кадр данных для этого 1647,58 будет пустым:
col1 col2
1000.04 10000
1050.02 20000
2000.04 30000
if (len(matches[exp_mass])== 0):
matches[exp_mass] = None
IЯ думал, что вышеприведенная часть поможет, но я ошибаюсь.Мы ценим любые предложения.Спасибо!