我有一个像这样的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.1
和numpy 1.11.0
.
我的DataFrame的形状由大约9.000.000行和15列组成.
更有趣的是,当我在我的DataFrame的所有子集中执行此代码行时(对于1.000.000行的每个子集),我不会提出任何代码行ValueError
.
这是一个已知的行为,pandas
不能管理相当大的DataFrame或我错过了什么?
欢迎任何帮助!
由于我的DataFrame来自几个文件,我注意到一些索引是重复的.
同
df.index = np.arange(df.shape[0])
加载数据后,它现在可以正常工作.
实际上,我的假设是,在组中的某些组中,有时行具有相同的索引.
当我尝试使用我的DataFrame的子集时,这个案例幸运/不幸的是从未发生过.
但是,错误消息并非非常详尽.