當前正在使用pandas處理數據集。沒有太多的經驗,這樣的東西,所以任何幫助將不勝感激。數據集(如下所示):TypeError:Numpy.float64對象不可調用迭代行pandas數據幀
表顯示與由年分組不同片段相關聯的評級。我試圖解析表格並從其相關年份列(不包括nans)中提取最新評級,並將其應用到Curr_Rate
列中的相應位置以及在Curr_RatingYr
中收集評級的年份。
第二項任務是提取第二個最新評級(各年),並將這些值填入Prev_Rate
和PrevRatingYr
字段。最後,我需要根據2000-2017年的所有可用評分生成平均值。我平均下來的部分,但是當我嘗試解析表來產生電流額定值和先前費率值,我會見了:
TypeError stating numpy.float64 object is not callable at index 0
任何幫助將不勝感激。
df = pd.read_excel('CurrPrevRate1.xlsx')
df.head()
dftest = df[:100]
# Replace zeros with NaN
dftest[['y2000', 'y2001', 'y2002', 'y2003', 'y2004', 'y2005', 'y2006','y2007', 'y2008', 'y2009', 'y2010', 'y2011', 'y2012', 'y2013', 'y2014', 'y2015', 'y2016', 'y2017']] = dftest[['y2000','y2001', 'y2002', 'y2003', 'y2004', 'y2005', 'y2006','y2007', 'y2008', 'y2009', 'y2010', 'y2011', 'y2012', 'y2013', 'y2014', 'y2015', 'y2016', 'y2017']].replace(0, np.nan)
#Change all values in these columns to floats
#dftest[['y2000', 'y2001', 'y2002', 'y2003', 'y2004', 'y2005', 'y2006','y2007', 'y2008', 'y2009', 'y2010', 'y2011', 'y2012', 'y2013', 'y2014', 'y2015', 'y2016', 'y2017']] = dftest[['y2000', 'y2001', 'y2002', 'y2003', 'y2004', 'y2005', 'y2006','y2007', 'y2008', 'y2009', 'y2010', 'y2011', 'y2012', 'y2013', 'y2014', 'y2015', 'y2016', 'y2017']].apply(pd.to_numeric)
#Get average of rows
dftest['AvgRating'] = dftest[['y2000', 'y2001', 'y2002', 'y2003', 'y2004', 'y2005', 'y2006','y2007', 'y2008', 'y2009', 'y2010', 'y2011', 'y2012', 'y2013', 'y2014', 'y2015', 'y2016', 'y2017']].mean(axis=1)
def getCurrRate():
for x in dftest['y2017']:
if 0 <= x <= 10:
return x
else:
for y in dftest['y2016']:
if 0 <= y <= 10:
return y
else:
for z in dftest['y2015']:
if 0 <= z <= 10:
return z
else:
return 'N/A'
dftest['Curr_Rate'] = dftest[['y2000', 'y2001', 'y2002', 'y2003', 'y2004', 'y2005', 'y2006','y2007', 'y2008', 'y2009', 'y2010', 'y2011', 'y2012', 'y2013', 'y2014', 'y2015', 'y2016', 'y2017']].apply(getCurrRate(), axis=1)
dftest
你能提供(一)實際,內聯數據替代的截圖,和(b)預期的輸入和輸出?更一般地說,當您發佈[最小化,完整和可驗證示例](https://stackoverflow.com/help/mcve)時,您會發現獲得更好的幫助更快。 –