每当我尝试在具有分层索引的数据帧上向 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/