亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大型數據集上的 Numpy Rate 函數返回空值

大型數據集上的 Numpy Rate 函數返回空值

Helenr 2021-12-17 10:43:09
我正在使用numpy rate 函數來模擬貸款的Excel Rate函數。該函數在處理我的數據幀的子集(100 萬條記錄)時返回正確的結果。但是,在處理整個數據幀(超過 1000 萬條記錄)時,它會為所有數據返回空結果。這可能是內存問題嗎?如果是這樣,如何解決?我已經嘗試對數據進行分塊并使用 while/for 循環進行計算,但這并沒有解決問題。這有效(雖然我遍歷 1000 萬條記錄時沒有):test = df2.iloc[:1000000,:]test = test.loc[:,['LoanTerm',Instalment,'LoanAmount']]test['True_Effective_Rate'] = ((1+np.rate(test['LoanTerm'],-test['Instalment'],test['LoanAmount'],0))**12-1)*100我試圖讓它發揮作用:df2['True_Effective_Rate'] = ((1+np.rate(df2['LoanTerm'],-df2['Instalment'],df2['LoanAmount'],0))**12-1)*100我看到過去有人問過一個類似的問題,當其中一個參數輸入不正確時,返回的所有值都是空值。使用 numpy.rate,在 numpy 數組上意外返回 nan不過,我的數據框沒有 0 值。我怎樣才能防止這種情況發生?
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

您可以使用 apply 為每行計算一次此值,因此只有無效行才會是 nan,而不是整個結果。


import pandas as pd

import numpy_financial as npf # i get a warning using np.rate

i = {

 'LoanAmount': [5_000,20_000,15_000, 50_000.0, 14_000,1_000_000,10_000],

 'LoanTerm': [72, 12,60, 36,72,12,-1],

 'Instalment': [336.0,5000.0,333.0,0.0,-10,1000.0,20],}

df = pd.DataFrame(i)

df.apply(lambda x: npf.rate(nper=x.LoanTerm,pv=x.LoanAmount,pmt=-1*x.Instalment,fv=0),axis=1)

對于大型數據集,這會更慢,因為您無法利用矢量化。


您還可以將數據框條目過濾為僅有效值。很難重現無效的內容,因為您沒有共享輸入,但在我上面的示例中,貸款期限和分期付款都必須 > 0。


valid = df.loc[(df.Installment > 0) & (df.LoanTerm > 0)]

npf.rate(nper=valid.LoanTerm,pv=valid.LoanAmount,pmt=-1*valid.Installment,fv=0)


查看完整回答
反對 回復 2021-12-17
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號