У меня есть два набора данных, которые описывают квантовые свойства молекулы, а также энергию.DataS имеет 45 тыс. Баллов, но нет неопределенности, DataM имеет 5 тыс. Баллов, но каждая энергия имеет неопределенность.Основная цель - включить неопределенности, которые мы знаем из DataM, в более полную DataS.Используя другие квантовые свойства, которые для простоты собраны в один столбец, как я могу сопоставить данные из dataS с данными из dataS, чтобы я знал, к какой строке / позиции в dataM я могу добавить неопределенность.Мы в основном используем другие квантовые свойства, чтобы определить правильную энергию.Я не хочу функцию 1-1;он должен просеять столбец M, чтобы найти, какая строка в столбце S совпадает.
Выдержка из того, как выглядит каждый столбец:
S M ΔE
0 0+X1Sigmag+0 0+X1Sigmag+0 0.000000
1 0+X1Sigmag+1 2+X1Sigmag+0 0.008930
2 0+X1Sigmag+2 4+X1Sigmag+0 0.002009
3 0+X1Sigmag+3 6+X1Sigmag+0 0.001273
4 0+b3Sigmag-0 8+X1Sigmag+0 0.005600
5 0+X1Sigmag+4 10+X1Sigmag+0 0.001979
6 0+b3Sigmag-1 12+X1Sigmag+0 0.001763
7 0+X1Sigmag+5 14+X1Sigmag+0 0.001962
8 0+b3Sigmag-2 16+X1Sigmag+0 0.006180
9 0+X1Sigmag+6 2-a3Piu0 0.004950
10 0+b3Sigmag-3 3-a3Piu0 0.005230
Очевидно, первый совпадает, поэтому я бы добавил неопределенность 0 для строки 1 (0 в качестве его Python)
S = pd.DataFrame(data1, columns= ['Properties']).values
M = pd.DataFrame(data2, columns= ['Properties']).values
Я организовал два фрейма данных и в настоящее время использую:
equal_indices = []
for i in range(len(S)):
for j in range(len(M)):
if S[i] == M[j] and M[i]==S[j]:
equal_indices.append(j [have also tried i])
print(i,j)
Это занимает слишком много времени и не дает ничего полезного ... длина - это проблема, поскольку я однажды ввел бы большие значения данныхя успешно справился с этим.
Я хотел бы закончить с кодом, который выглядит следующим образом (другие строки, которые я составил, но первая верна), но для многих совпадений:
ith row matched property resultant uncertainty
0 0+X1Sigmag+0 0.000000
17 0+b3Sigmag-2 0.060789
450 2-a3Piu 0.005230
Большое спасибо!