考虑一个日期索引的DataFrame:
d0 = datetime.date(2024,5,5)
d1 = datetime.date(2024,5,10)
df0 = pd.DataFrame({"a":[1,2],"b":[10,None],"c":list("xy")}, index=[d0,d1])
df0.index
Index([2024-05-05, 2024-05-10], dtype='object')
请注意
df0.index.dtype
是
object
.
现在,查找适用于
date
:
df0.loc[d0]
a 1
b 10.0
c x
Name: 2024-05-05, dtype: object
但两者都有
df0.loc[str(d0)]
和
df0.loc[pd.Timestamp(d0)]
提升
KeyError
.
这似乎是合理的。
但是,请考虑
df1 = df0.reindex(pd.date_range(d0,d1))
df1.index
DatetimeIndex(['2024-05-05', '2024-05-06', '2024-05-07', '2024-05-08',
'2024-05-09', '2024-05-10'],
dtype='datetime64[ns]', freq='D')
请注意
df1.index.dtype
是
datetime64
.
现在,查找适用于
二者都
df1.loc[pd.Timestamp(d0)]
(如预期)
和
df1.loc[str(d0)]
(
为什么?
但是
不
对于
df1.loc[d0]
(如果它适用于字符串,为什么不呢
日期
?!)
这是预期的行为吗(a
程序错误
具有
任期
)? 这是故意的吗?