python - 类型错误:列 'year_2021' 具有 dtype 对象,不能将方法 'nlargest' 用于此 dtype
问题描述
我有一个 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
我正在努力获得每年最大的 n:
dataframe = yearly_returns.nlargest(5, "year_"+str(2021))
这给了我错误TypeError: Column 'year_2021' has dtype object, cannot use method 'nlargest' with this dtype
我该如何解决?
解决方案
astype(float)
在使用之前尝试确保列是浮点格式nlargest()
,如下所示:
dataframe = yearly_returns.astype(float).nlargest(5, "year_"+str(2021))
如果您只需要相关列中的数据,而不是整个数据框中的所有列,则应考虑使用Series.nlargest()
instead of DataFrame.nlargest()
,如下所示:
series = yearly_returns["year_"+str(2021)].astype(float).nlargest(5)
结果将是一系列相关列,而不是包含不相关年份数据的整个数据框。
推荐阅读
- ios - NWPathMonitor 在 Swift 中调用不满意
- c# - 从 c# 接口接收正确整数的问题
- c - 使用结构时如何解决此内存分配问题?
- .net-core - 是否可以将队列名称设置为 appsettings.json 文件?
- c# - 选择文件并将其上传到特定文件夹
- swift - Swift AVPlayer - 防止同时播放 2 个视频/音频
- c# - 单击以 GameObject 和 Billboard 旋转着色器
- angular - 构造函数参数导致错误 -> 哪个错误?
- reactjs - 如何仅从 firebase 获取一次数据或检查即将到来的新数据是否已更新
- jquery - 移动一个根据水平滚动另一个元素