本文介绍了在具有分层索引的pandas数据框中使用iloc的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当我尝试给具有层次结构索引的数据框上的iloc列表时,都会出现此ValueError.我不确定我是在做错什么还是这是一个错误.使用iloc和非分层索引时,我没有任何问题.这是使用Pandas 0.12.0.

I'm getting this ValueError whenever I try to give a list to iloc on a dataframe with a hierarchical index. I'm not sure if I'm doing something wrong or if this is a bug. I haven't had any issues using iloc the same way with a non-hierarchical index. This is using Pandas 0.12.0.

In [25]: df
Out[25]: 
            D         E         F
a x -1.050681 -0.084306 -1.635852 
  y  1.544577  1.594976 -0.084866
b x  0.462529 -1.873250  1.252685
  y -0.468074  0.673112 -0.900547
c x  0.901710 -0.432554  0.260157
  y  0.101522 -0.550223  1.389497

In [26]: df.iloc[[1,3]]
..... snip .....
ValueError: Buffer dtype mismatch, expected 'Python object' but got 'long'

In [27]: df.iloc[range(2)]
...... snip .....
ValueError: Buffer dtype mismatch, expected 'Python object' but got 'long'

推荐答案

这是一个错误并已在master(0.13)中修复,一个临时的解决方法是使用ix(!):

This was a bug and has been fixed in master (0.13), a temporary workaround is to use ix (!):

In [11]: df1.ix[[1, 3]]
Out[11]: 
            D         E         F
a y  1.544577  1.594976 -0.084866
b y -0.468074  0.673112 -0.900547

在主版本中,为0.13:

In master, 0.13:

In [12]: df1.iloc[[1, 3]]
Out[12]: 
            D         E         F
a y  1.544577  1.594976 -0.084866
b y -0.468074  0.673112 -0.900547

这篇关于在具有分层索引的pandas数据框中使用iloc的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 16:54