【发布时间】:2019-11-26 21:48:05
【问题描述】:
我正在参加 DataCamp“熊猫基础”课程。这是time series with pandas 中关于部分字符串索引的部分。
给定一个这种格式的DataFrame
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]
对
[index][column]
是为了编写代码,还是因为 pandas 可以理解,所以我如何编写代码无关紧要,所以有人会阅读代码吗?
注意:这里的问题不是“如何在 pandas 中提取带有部分字符串索引的行?”。请不要告诉我.loc 是您个人的最爱,或者您曾经使用过的唯一方式,或者您认为“有效”的唯一方式。如果您只知道.loc,那么除非您竭尽全力考虑其他可能性,否则您将无法回答这个问题。我知道.loc 和.loc 是不是这个问题的答案。 (我希望我不必这么说。)
【问题讨论】:
标签: python pandas dataframe datetime slice