Python 类型错误:列';2021年&x27年;具有数据类型对象,无法使用方法';nLAGEST';使用此数据类型

Python 类型错误:列';2021年&x27年;具有数据类型对象,无法使用方法';nLAGEST';使用此数据类型,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个Python数据框架,看起来像: year_2021 year_2020 year_2019 year_2018 year_2017 year_2016 year_2015 A 15.930541127542696 0.12659425148389353 37.859222886444584 0.7502044402344105 29.867551207184103 -2.62377211249297 -0.2070996935037606

我有一个Python数据框架,看起来像:

    year_2021   year_2020   year_2019   year_2018   year_2017   year_2016   year_2015
A   15.930541127542696  0.12659425148389353 37.859222886444584  0.7502044402344105  29.867551207184103  -2.62377211249297   -0.20709969350376067
AA  67.78493901734711   0.8676822974374843  7.609706605792995   -0.4184107467700045 -18.02591304685353  -1.2791578388405083 -51.821640736128046
AAL 61.46728433834196   -4.05834067688741   -45.78892961483622  1.4295670957092637  -11.699505205100467 1.1522856582117076  -39.40366183570082
我正试图每年获得最大的氮:

dataframe = yearly_returns.nlargest(5, "year_"+str(2021))
这给了我一个错误
TypeError:Column'year\u 2021'有dtype对象,不能将方法'nlargest'用于此dtype


如何修复此问题?

对象类型不能有NLAGEST。因此,请尝试转换为int或float

dataframe = yearly_returns.astype('float').nlargest(5, "year_"+str(2021))


对象类型不能有NLAGEST。因此,请尝试转换为int或float

dataframe = yearly_returns.astype('float').nlargest(5, "year_"+str(2021))


在使用
nlargest()
之前,通过
astype(float)
尝试确保列为浮点格式,如下所示:

dataframe = yearly_returns.astype(float).nlargest(5, "year_"+str(2021))
series = yearly_returns["year_"+str(2021)].astype(float).nlargest(5)

如果您只需要来自相关列的数据,而不是从整个数据文件中的所有列,则应该考虑使用,而不是如下所示:

dataframe = yearly_returns.astype(float).nlargest(5, "year_"+str(2021))
series = yearly_returns["year_"+str(2021)].astype(float).nlargest(5)

结果将是一系列相关列,而不是包含不相关年份数据的整个数据框。

在使用
nlargest()
之前,尝试通过
astype(float)
确保列为浮点格式,如下所示:

dataframe = yearly_returns.astype(float).nlargest(5, "year_"+str(2021))
series = yearly_returns["year_"+str(2021)].astype(float).nlargest(5)

如果您只需要来自相关列的数据,而不是从整个数据文件中的所有列,则应该考虑使用,而不是如下所示:

dataframe = yearly_returns.astype(float).nlargest(5, "year_"+str(2021))
series = yearly_returns["year_"+str(2021)].astype(float).nlargest(5)
结果将是一系列相关列,而不是整个数据框架,包含无关年份的数据