我正在参加DataCamp的“熊猫基础”课程。这是time series with pandas中部分字符串索引的部分。
给出这种格式的数据框
Temperature DewPoint Pressure
Date
2010-01-01 00:00:00 46.2 37.5 1.0
2010-01-01 01:00:00 44.6 37.1 1.0
2010-01-01 02:00:00 44.1 36.9 1.0
2010-01-01 03:00:00 43.8 36.9 1.0
2010-01-01 04:00:00 43.5 36.8 1.0
2010-01-01 05:00:00 43.3 37.3 1.0
...
2010-01-01 21:00:00 48.1 38.5 1.0
2010-01-01 22:00:00 47.2 38.5 1.0
2010-01-01 23:00:00 46.4 38.4 1.0
2010-01-02 00:00:00 46.5 38.2 1.0
2010-01-02 01:00:00 44.9 37.8 1.0
... ... ... ...
2010-12-31 22:00:00 46.9 37.9 1.0
2010-12-31 23:00:00 46.2 37.7 1.0
在先前的练习中,他们使用以下公式使用部分字符串索引仅提取了一些行:
df1 = df.loc['2010-Aug-01':'2010-Aug-15', 'Temperature']
但是,在当前练习中,他们正在使用另一个有效的公式 :
df2 = df['Temperature']['2010-Aug-01':'2010-Aug-15']
因为它的简单性,我喜欢它。但是,标签的放置似乎违反直觉,因此出于实验目的,我尝试:
df3 = df['2010-Aug-01':'2010-Aug-15']['Temperature']
看起来是等效的(给出了相同的结果)。
我认为熊猫“足够聪明”可以做正确的事,但是我感到惊讶。我当时在考虑字典格式,并且会假设索引(键)应该排在第一位,而值(列)应该排在第二位。
有推荐的订单吗?
[column][index]
vs
[index][column]
编写代码还是无关紧要,因为熊猫能理解,因此阅读代码的人也会如此吗?
注意:这里的问题不是“如何在熊猫中提取带有部分字符串索引的行?”。请不要告诉我.loc
是您个人的最爱,或者是您曾经使用过的唯一方式,或者是您认为“有效”的唯一方式。如果您只知道.loc
,那么除非您下定决心将其他可能性包括在内,否则您将无法回答这个问题。我知道.loc
,而.loc
并不是这个问题的答案。 (我希望我不必这么说。)
答案 0 :(得分:2)
您应该使用.loc
d1 = df.loc['2010-08-01':'2010-08-15','Temperature']