熊猫数据框切片-行列v的顺序的pythonic习惯用法?

时间:2019-07-18 02:35:51

标签: python pandas dataframe datetime slice

我正在参加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并不是这个问题的答案。 (我希望我不必这么说。)

1 个答案:

答案 0 :(得分:2)

您应该使用.loc

d1 = df.loc['2010-08-01':'2010-08-15','Temperature']