在Pandas中,当索引数据类型为Datetime时,是否使用索引访问两行?

s4chpxco  于 2022-10-23  发布在  其他
关注(0)|答案(1)|浏览(143)

我有一个Pandas Dataframe df1,如下所示

print(df1)
    W  X  Y  Z
A -10 -9 -8 -7
B  -6 -5 -4 -3
C  -2 -1  0  1
D   2  3  4  5
E   6  7  8  9

我尝试按如下方式访问“A”和“B”

print (df1.loc[['A','B'], :])

    W  X  Y  Z
A -10 -9 -8 -7
B  -6 -5 -4 -3

同样的方式,我有如下的销售数据框,其中数据类型的日期是日期时间;

print(sales.head())
                 Col1    Col2        Col3        Col4        Col5        Col6
Date                                                                          
2015-01-02    0.000559  0.002772   0.002992   -0.001438  -0.002320   -0.002189
2015-01-05   -0.029050 -0.031515  -0.031223   -0.031045  -0.031258   -0.027422
2015-01-06   -0.029919 -0.035205  -0.020229   -0.025929  -0.028800   -0.020865
2015-01-07    0.004745  0.009270   0.014903    0.001526   0.014278    0.005951
2015-01-08    0.020661  0.015048   0.015965    0.022346   0.014889    0.022137

然而,当我有一个Dataframe,其中索引数据类型是Datetime,那么它的错误;

Print(sales.loc[['2015-01-02','2015-01-08'], :])

KeyError: "None of [Index(['2015-01-02', '2015-01-08'], dtype='object', name='Date')] are in the [index]"

当索引数据类型为Datetime时,我们不能使用索引选择特定行吗

请提出建议。

bzzcjhmw

bzzcjhmw1#

您可以通过添加pd.to_datetime使类型相同来更正筛选器:

df.loc[pd.to_datetime(['2015-01-02','2015-01-08']), :]
                Col1      Col2      Col3      Col4      Col5      Col6
2015-01-02  0.000559  0.002772  0.002992 -0.001438 -0.002320 -0.002189
2015-01-08  0.020661  0.015048  0.015965  0.022346  0.014889  0.022137

相关问题