【发布时间】:2017-08-26 04:08:19
【问题描述】:
目前正在使用 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
【问题讨论】:
-
您能否提供 (a) 实际的内联数据而不是屏幕截图,以及 (b) 预期的输入和输出?更一般地说,当您发布 Minimum, Complete, and Verifiable Example 时,您会发现您会更快地获得更好的帮助。
标签: python pandas typeerror pandas-apply