每当我尝试在具有分层索引的数据帧上向 iloc 提供列表时,我都会收到此 ValueError。我不确定是我做错了什么还是这是一个错误。我没有以与非分层索引相同的方式使用 iloc 的任何问题。这是使用 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'

最佳答案

这是 a bug 并已在 master (0.13) 中修复,临时解决方法是使用 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 [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

关于python - 在带有分层索引的 Pandas 数据框中使用 iloc 时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20016360/

10-12 21:59