Конвертация валют Панд

1

У меня возникают проблемы с приведенным ниже кодом. В моей системе не хватает памяти, как только она начнет выполнение третьей строки ниже. Я пытаюсь преобразовать суммы в доллары США на основе столбцов "M/D", которые указывают, нужно ли мне умножать или делить сумму "LDIVND" на "Rate". "USDEQ" - это новый столбец, который я пытаюсь создать и сохранить конвертированную сумму.

Любая помощь приветствуется.

t['M/D']=t['M/D'].astype(str)

t.loc[:,['LDIVND','Rate']]=t.loc[:,['LDIVND','Rate']].apply(pd.to_numeric)

t['USDEQ'] = t['M/D'].apply(
    lambda x: t['LDIVND']/t['Rate'] if x =='D' else t['LDIVND']*t['Rate'] )
Теги:
pandas

1 ответ

0
Лучший ответ

Используйте numpy.where:

t[['LDIVND','Rate']]=t[['LDIVND','Rate']].apply(pd.to_numeric)
t['USDEQ'] = np.where(t['M/D'].astype(str) =='D', 
                      t['LDIVND']/t['Rate'], 
                      t['LDIVND']*t['Rate'])
  • 0
    Спасибо, это сработало.
  • 0
    @ prdp13 Если мой ответ был полезным, не забудьте принять его - нажмите на флажок ( ) рядом с ответом, чтобы переключить его с серого на заполнитель. Спасибо.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню