python - 使用 python-pandas 索引数据帧时无法获得非唯一标签的正确切片绑定(bind)

标签 python pandas dataframe

我有这样一个数据框df :

a         b
10        2
3         1
0         0
0         4
....
# about 50,000+ rows

我希望选择 df[:5, 'a'] 。但是当我打电话df.loc[:5, 'a'] ,我收到错误:KeyError: 'Cannot get right slice bound for non-unique label: 5 。当我调用df.loc[5]时,结果包含 250 行,而当我使用 df.iloc[5] 时只有一行。为什么会发生这种情况以及如何正确索引它?先感谢您!

最佳答案

错误消息解释here :如果索引不是单调的,则两个切片边界必须是索引的唯一成员

.loc.iloc 之间的区别是基于 label整数位置 的索引 - see docs.loc 用于选择单个标签 或标签的切片。这就是 .loc[5] 选择 index 值为 250 的所有行(错误与非唯一索引有关)的原因。相反,iloc 选择第 5 行(0 索引)。这就是为什么您只获得一行,并且索引值可能是也可能不是 5。希望这有帮助!

关于python - 使用 python-pandas 索引数据帧时无法获得非唯一标签的正确切片绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37935294/

相关文章:

python - 通过索引获取元素与使用 pop() Python 获取元素

python - Pandas 数据框索引从日期时间中删除日期

python - 如何将嵌套字典转换为 pandas DataFrame

python - 将 Pandas 数据框拆分为单独的组

python - 如何在 Nifi 中将 pandas 数据帧从一个处理器传递到另一个处理器?

python Pandas : banal apply statements incredibly slow

python - Django SearchVector 不适用于包含空格的搜索查询

python - FFT 卷积并不比规范卷积计算快

Python Pandas : Group BY function on categorical variables

python - Pandas 数据框中点坐标的欧几里得距离