У меня возникают проблемы с приведенным ниже кодом. В моей системе не хватает памяти, как только она начнет выполнение третьей строки ниже. Я пытаюсь преобразовать суммы в доллары США на основе столбцов "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'] )
Используйте 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'])
✓
) рядом с ответом, чтобы переключить его с серого на заполнитель. Спасибо.