请帮帮我!!!!我创建了一个类,它接受csv文件的数据来执行计算并生成一个新报告。代码如下:
import pandas as pd
class Asset:
def __init__(self, filename):
#read csv data
self.data=pd.read_csv(filename)
self.filename=filename
self.data=self.data[['month','loan_number','Type','UPB','current_interest_rate','p']]
def get_prn_bal(self,p, UPB):
return p * UPB
def get_int(self, prn_bal, current_interest_rate, month, DQ_values):
return prn_bal*(current_interest_rate/12 *(month+DQ_values+1))
def get_cf(self,prn_bal, current_interest_rate, month, DQ_values):
return prn_bal*(1+ current_interest_rate/12 *(month+DQ_values+1))
def get_data(self):
self.data['Prn_Bal'] = self.data.apply(lambda x: self.get_prn_bal(x['p'], x['UPB']), axis=1)
self.data['Interest'] = self.data.apply(lambda x: self.get_int(x['Prn_Bal'],x['current_interest_rate'],
x['month'], x['DQ']), axis=1)
self.data['CF'] = self.data.apply(lambda x: self.get_cf(x['Prn_Bal'],x['current_interest_rate'],
x['month'], x['DQ']), axis=1)
f = open(self.filename,"w+")
f.truncate()
f.close()
self.data.to_csv(self.filename, header=True, index=False)
df=Asset("test.csv")
df.get_data()
python显示了一个错误:
!runcell(0,'c:/users//desktop/untitled2.py')回溯(最后一次调用):
文件“c:\users\anaconda3\lib\site packages\pandas\core\index\base.py”,第2895行,在get\u loc return self.\u engine.get\u loc(casted\u key)中
文件“pandas\u libs\index.pyx”,第70行,在pandas.\u libs.index.indexengine.get\u loc中
文件“pandas\u libs\index.pyx”,第101行,在pandas.\u libs.index.indexengine.get\u loc中
文件“pandas\u libs\hashtable\u class\u helper.pxi”,第1675行,在pandas.\u libs.hashtable.pyobjecthashtable.get\u item中
文件“pandas\u libs\hashtable\u class\u helper.pxi”,第1683行,在pandas.\u libs.hashtable.pyobjecthashtable.get\u item中
keyerror:'dq'
上述异常是以下异常的直接原因:
回溯(最近一次呼叫):
文件“c:\users\desktop\untitled2.py”,第45行,在df.get\u data()中
文件“c:\users\desktop\untitled2.py”,第32行,在get\u data self.data['interest']=self.data.apply中(lambda x:self.get\u int(x['prn\u bal'],x['current\u interest\u rate']),
文件“c:\users\anaconda3\lib\site packages\pandas\core\frame.py”,第7548行,在apply return op.get\u result()中
文件“c:\users\anaconda3\lib\site packages\pandas\core\apply.py”,第180行,在get\u result return self.apply\u standard()中
文件“c:\users\anaconda3\lib\site packages\pandas\core\apply.py”,第271行,在apply\u standard results中,res\u index=self.apply\u series\u generator()
文件“c:\users\anaconda3\lib\site packages\pandas\core\apply.py”,第300行,在apply\series\u generator results[i]=self.f(v)中
文件“c:\users\desktop\untitled2.py”,第33行,x['month'],x['dq']),轴=1)
文件“c:\users\anaconda3\lib\site packages\pandas\core\series.py”,第882行,在getitem return self.\u get\u value(key)中
文件“c:\users\anaconda3\lib\site packages\pandas\core\series.py”,第989行,在\u get\u value loc=self.index.get\u loc(标签)中
文件“c:\users\anaconda3\lib\site packages\pandas\core\indexes\base.py”,第2897行,在get\loc raise keyerror(key)from err中
keyerror:'dq'
1条答案
按热度按时间8hhllhi21#
在下面的行中,您将传递str值为'month'和'dq'的列表:
请尝试以下操作: