python - 如果请求的索引位于整数索引标签之间,pandas 数据框中是否有内置方法来包含切片的下一个/上一个行?

标签 python pandas dataframe

示例数据框:

    value 
ind
1   2.3
3   4.4
5   3.3
7   6.6

然后我切片:

df.loc[2:4]

默认输出将是:

3   4.4

但我希望包括上限和下限值:

1   2.3
3   4.4
5   3.3

有没有一种不需要额外逻辑的内置方法?

最佳答案

简短回答:否

.loc[] 方法查找等于或大于切片起始值的第一个索引值,反之则查找切片终止值。

如果您需要额外的逻辑(评估起始值是否完全匹配,如果没有,则获取下一个最佳的较低值,以及与停止值等效的值),您必须使用自己的代码来执行此操作(至少不是 pandas 内置的,网上可能已经有解决方案)

工作 stub (没有异常处理等,假设 df 按整数索引排序,如果命中第一行或最后一行则失败):

def loc2(df, start, stop):
    r = df.loc[start:stop]
    if r.index[0]>start:
        start=df.index.to_list()[df.index.to_list().index(r.index[0])-1]
    if r.index[-1]<stop:
        stop=df.index.to_list()[df.index.to_list().index(r.index[-1])+1]
    return df.loc[start:stop]

关于python - 如果请求的索引位于整数索引标签之间,pandas 数据框中是否有内置方法来包含切片的下一个/上一个行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67019274/

相关文章:

python - Twitter 错误 ImportError : cannot import name ReadTimeoutError, 有人吗?

python - 从python pandas的多个目录中的多个excel文件中提取数据

python - 如何在 DataFrame 中选择多个分散的列?

python - 更改 DataFrame 行子集的列

python - 在 Pandas 数据帧上使用正则表达式的新列的多个条件

Python 语法和其他检查?

python - 检查 python 列表中的下一个元素是否为空

python - 将代码从 Py3.0 转换为 2.7Py Super() 并打印语句

python - 按唯一组的数量对 Pandas 列进行排序

python - 从一列 Pandas 创建一个 NxN 矩阵