我无法弄清楚为什么在下面的代码中取消注释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':]
)。如果我不对它进行排序,它适用于上面的示例,但不适用于时间范围。
答案 0 :(得分:1)
我建议使用.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