python - 在 sort_index 之后使用 pandas 字符串选择

标签 python pandas dataframe

我不明白为什么在下面的代码中取消注释 ts = ts.sort_index() 会抛出 ErrorKey:

import datetime
import pandas as pd

df = pd.DataFrame({
    'x': [2, 1, 3],
    'd': [
        datetime.datetime(2018, 5, 21),
        datetime.datetime(2018, 5, 20),
        datetime.datetime(2018, 5, 22)
    ]
})

ts = df.set_index('d')
#ts = ts.sort_index()

ts['2018-05-21']

我的假设是 sort_index 以某种方式生成了一个新索引,因此破坏了字符串选择,但我找不到任何证据。

为了提供一些上下文,我想对这个时间序列进行排序以选择一个时间范围(例如,ts['2018-05-21':])。如果我不对其进行排序,它适用于上面的示例,但不适用于时间范围。

最佳答案

我会推荐使用.loc

#ts = df.set_index('d')
#ts = ts.sort_index()
ts.loc['2018-05-21':,:]
Out[102]: 
            x
d            
2018-05-21  2
2018-05-22  3

关于python - 在 sort_index 之后使用 pandas 字符串选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50572686/

相关文章:

python - 提取到 : header from an attachment of an email

python - 在 Python 中使用 limfit.minimize 最小化目标函数

javascript - 如何在使用 JavaScript 的页面上填写 Web 表单

Python - Pandas 描述抛出错误 : unhashable type 'dict'

python - 如何在 python 中分组和计算二项式变量?并绘制这个图

python - 按键分组并使用自定义标准聚合

python - 做一些 python 分析后,Django(?)对大型数据集真的很慢

python - 将 csv 文件的内容存储到数据框中 [Python Pandas]

python - 如何不检查多个数据框 Pandas ?

python - 如何在给定日期时间值限制下填充数据框中的列?