現在、pandasを使用してデータセットを処理しています。この種のもので多くの経験を持っていないので、どんな助けも大歓迎です。データセット(以下に示す):TypeError:Numpy.float64オブジェクトは呼び出し可能ではありません。反復行pandasデータフレーム
テーブル年でグループ化された異なるセグメントに関連付けられた評価を示しています。私はテーブルを解析し、関連付けられた年の列(ナンを除く)から最新の評価を引き出して、Curr_Rate
の列のそれぞれの場所に、評価が収集された年と共にCurr_RatingYr
に適用しようとしています。
2番目のタスクは、2番目に最近の評価を(それぞれの年で)取り込み、これらの値をPrev_Rate
とPrevRatingYr
フィールドに入力することです。最後に、利用可能なすべてのレーティングから平均を生成する必要があります。私は平均的な部分を下にありますが、私がしようとすると現在の評価と前の評価のための値を生成するために、テーブルを解析するとき、私はと会っています:
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)は、入力と出力を期待できます?より一般的には、[最小、完全、および検証可能な例](https://stackoverflow.com/help/mcve)を投稿すると、より迅速に、より良いヘルプを得ることができます。 –