当前位置:  开发笔记 > 编程语言 > 正文

Pandas中rank方法中的ValueError没有更多解释

如何解决《Pandas中rank方法中的ValueError没有更多解释》经验,为你挑选了1个好方法。

我有一个像这样的pandas Dataframe:

     year   week           city  avg_rank
0    2016     52          Paris         1
1    2016     52 Gif-sur-Yvette         2
2    2016     52          Paris         1
3    2017      1          Paris         4
4    2016     52          Paris         3
5    2016     52          Paris         5
6    2016     52          Paris         2

但是这个代码行:

df['real_index']=df.groupby(by=['year', 'week', 'city']).avg_rank.rank(method='first')

生成堆栈跟踪:

/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.pyc in rank(self, axis, method, numeric_only, na_option, ascending, pct)

/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.pyc in wrapper(*args, **kwargs)
590                                                                 *args, **kwargs)
591                         except(AttributeError):
592                             raise ValueError
593
594             return wrapper

ValueError:

NaN在DataFrame的那些列中没有任何价值.

我使用的python2.7一起pandas 0.18.1numpy 1.11.0.

我的DataFrame的形状由大约9.000.000行和15列组成.

更有趣的是,当我在我的DataFrame的所有子集中执行此代码行时(对于1.000.000行的每个子集),我不会提出任何代码行ValueError.

这是一个已知的行为,pandas不能管理相当大的DataFrame或我错过了什么?

欢迎任何帮助!



1> Thibaut Lois..:

由于我的DataFrame来自几个文件,我注意到一些索引是重复的.

df.index = np.arange(df.shape[0])

加载数据后,它现在可以正常工作.

实际上,我的假设是,在组中的某些组中,有时行具有相同的索引.

当我尝试使用我的DataFrame的子集时,这个案例幸运/不幸的是从未发生过.

但是,错误消息并非非常详尽.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有