Итак, если вы хотите умножить все 3 строки на «обменный курс» в 3-й строке (GBP) - вы можете попробовать это:
df = pd.DataFrame([[55000.0,'EUR','EUR',1.195826],
[200000.0,'USD','USD',1.000000],
[130000.0,'GBP','GBP',1.324188]],
columns=['Salary Amount:','Salary Currency:','Country Origin:','Exchange Rate:'])
# get the GBP exchange rate in the variable exchange_rate_GBP
exchange_rate_GBP = df[df['Salary Currency:']=='GBP']['Exchange Rate:'].values
# create a new column and multiply the `Salary Amount:` column value with the `exchange_rate_GBP` value
df['converted'] = df['Salary Amount:']*exchange_rate_GBP
print(df)
Вывод:
Salary Amount: Salary Currency: Country Origin: Exchange Rate: converted
0 55000.0 EUR EUR 1.195826 72830.34
1 200000.0 USD USD 1.000000 264837.60
2 130000.0 GBP GBP 1.324188 172144.44
Если вы не хотите конвертировать 3-ю строку, которая уже есть в фунтах стерлингов, вы можете использовать np.where()
и игнорировать эту строку
df['converted'] = np.where(df['Salary Currency:']!='GBP',
df['Salary Amount:']*exchange_rate_GBP,
df['Salary Amount:'])
Вывод: (3-я строка в фунтах стерлингов не преобразуется)
Salary Amount: Salary Currency: Country Origin: Exchange Rate: converted
0 55000.0 EUR EUR 1.195826 72830.34
1 200000.0 USD USD 1.000000 264837.60
2 130000.0 GBP GBP 1.324188 130000.00
Чтобы получить среднее и максимальное значение:
print("Mean: ", df['converted'].mean())
print("Max: ", df['converted'].max())
Вывод:
Mean: 169937.46
Max: 264837.6