У меня есть файл Excel с 4 строками и 4 столбцами с метками столбцов 1,2,3,4
1 2 3 4
Row 1 12 10 7 6
Row 2 16 22 9 18
Row 3 26 10 10 5
Row 4 24 5 17 1
Я хочу получить доступ к строке 3, целому числу 1 и строке 4, целому числу 1значение, чтобы проверить, будет ли добавление обеих ячеек равным 50 или нет.Любая комбинация (p, q, r) в этом случае должна добавлять значения (строка q, col p) и (строка r, col p), а если значения = 50, тогда возвращать (p, q, r) в качестве комбинации.
В этом случае вывод должен быть: (1,3,4) .
import pandas as pd
import numpy as np
a = [1,2,3,4]
df = pd.read_excel('example.xlsx', sheetname='Sheet1')
combo = [(p,q,r) for p in a for q in a for r in a
if (df.iloc[q,p] + df.iloc[r,p] = 50)]
print (combo)
Обновление:
Попробовал это, но с небольшой модификацией, т.е. я делаю свои вычисления между столбцами таблицы:
Комбинация (1,3,4) теперь должна искать значения в следующих ячейках
(1,1) (1,3) (1,4)
(3,1) (3,3) (3,4)
(4,1) (4,3) (4,4)
import numpy as np
import pandas as pd
df = pd.read_excel('example.xlsx', sheetname='Sheet1')
df.index = list(range(1, df.shape[1] + 1))
df.columns = list(range(1, df.shape[1] + 1))
combo = [(p,q,r) for p in df.columns for q in df.columns for r in df.columns
if q > p and r > q and r > p
and df.loc[p,p] - df.loc[p,q] == df.loc[q,p] - df.loc[q,q]]
Я получаю следующее ошибка :
Ошибка значения: Несоответствие длины: Ожидаетсяось имеет 3 элемента, новые значения имеют 4 элемента