У меня есть столбец Id и соответствующее значение в качестве примера в приведенных ниже значениях.
Значение Id
A 0,0045 B 0,0044 C 0,0043 D 0,0052
У меня есть Id на основе фильтр, в котором если передается одно значение (например, A, он должен находить процентную разницу со всеми другими идентификаторами, например
Id Compared_id процент_различия AB (0,0044 / 0,0045) * 100 ==> 97,7777777777 (каждый раз, когда небольшое число находится в числитель) A C (0,0043 / 0,0045) * 100 ==> 95,5555555555 AD (0,0045 / 0,0052) * 100 ==> 86,5384615384
То же самое должно отображаться при выборе B или c или n-го идентификатора.
Я добился предварительно рассчитанного значения, сохранив значения в excel, используя приведенный ниже код.
import pandas as pd
df= pd.read_csv(r"filename.csv")
list =[]
for index,row in df.iterrows():
print("processing {} record".format(index))
if str(row['IDValue']) != 'nan':
for i,row1 in df.iterrows():
rate = 0
if str(row1['IDValue']) != 'nan' and (row1['IDValue'] != row['IDValue']):
# print("index: {}".format(i))
if row['IDvalue'] < row1['IDValue']:
rate = (row['IDValue'] / row1['IDValue'])*100
else:
rate = (row1['IDValue'] / row['IDValue'])*100
if rate <= 100 and rate >= 80.00:
list.append([row['ID'],row1['ID'],rate])
как добиться того же результата, передав входное значение идентификатора фильтра и Создание нового вычисляемого столбца в Spotfire.