pandas Timedelta指数切片范围为0纳秒。

问题描述 投票:0回答:0

如何在大熊猫中选择 Timedelta 索引 Timedelta 0纳秒的值 切片?

更具体地说,为什么在下面的例子中,选择使用的是 slice(None,'10:00:00.000000000') 给予所有条目,而不是只给第1个条目?

import pandas as pd
index = pd.Index([pd.Timedelta('10:00:00.000000000'),
                  pd.Timedelta('10:00:00.000000001'),
                  pd.Timedelta('10:00:00.000000111'),
                  pd.Timedelta('10:00:00.000000777')])
dd = pd.DataFrame(index=index, data={'x':range(len(index))})
dd.loc[slice(None,'09:59:59.999999999'),:] # works as expected
# Empty DataFrame
# Columns: [x]
# Index: []
dd.loc[slice(None,'10:00:00.000000000'),:] # unexpected result :-(
#                  x
# 10:00:00         0
# 10:00:00.000000  1
# 10:00:00.000000  2
# 10:00:00.000000  3
dd.loc[slice(None,pd.Timedelta('10:00:00.000000000')),:] # works as expected
#           x
# 10:00:00  0
dd.loc[slice(None,'10:00:00.000000001'),:] # works as expected
#                  x
# 10:00:00         0
# 10:00:00.000000  1

谢谢你的帮助

python pandas indexing slice
© www.soinside.com 2019 - 2024. All rights reserved.