为什么.loc不';你不能在Python熊猫系列中工作吗?

为什么.loc不';你不能在Python熊猫系列中工作吗?,python,pandas,series,Python,Pandas,Series,我通过过滤器获得所需的日期“2013-09-12”行。这是因为标签“日期”是索引的标签,索引是“2013-09-12”日期。其中“.loc”我相信是指列和行标签值。我的理解正确吗 mean_altitudes_perday = grouped_bydates.altitude.mean() print(mean_altitudes_perday) print(mean_altitudes_perday.loc[mean_altitudes_perday['date']] == '2013-09

我通过过滤器获得所需的日期“2013-09-12”行。这是因为标签“日期”是索引的标签,索引是“2013-09-12”日期。其中“.loc”我相信是指列和行标签值。我的理解正确吗

mean_altitudes_perday = grouped_bydates.altitude.mean()

print(mean_altitudes_perday)
print(mean_altitudes_perday.loc[mean_altitudes_perday['date']] == '2013-09-12') # Why loc is not working here?


# Q: What is the mean altitude of the birds on 2013-09-12?
# A: print(mean_altitudes_perday.filter(like='2013-09-12', axis=0))
错误消息:

date
2013-08-15    134.092000
2013-08-16    134.839506
2013-08-17    147.439024
2013-08-18    129.608163
2013-08-19    180.174797
                 ...    
2014-04-26     15.118012
2014-04-27     23.897297
2014-04-28     37.716867
2014-04-29     19.244792
2014-04-30     13.954545
Name: altitude, Length: 259, dtype: float64
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_value(self, series, key)
   4410             try:
-> 4411                 return libindex.get_value_at(s, key)
   4412             except IndexError:

# Had to delete a lot of error code due to posting requirements

KeyError: 'date'
看起来每天的平均高度是一个系列,索引名为date

可能有些数据框包含日期和高度列,您 创建每日平均高度执行如下操作:

mean_altitudes_perday = df.set_index('date').altitude
注意:如果打印输出的最后一行是。 这只是该系列的一个名称,继承自原始版本 列名。 索引也将继承,并使用其原始名称

当您执行诸如
每日平均高度['date']
之类的操作时, Pandas尝试在索引中查找“date”(一个字符串)并返回 本系列的对应元素

由于索引没有元素=='date',因此引发异常(KeyError)

这个异常的一个更有意义的名称可能是IndexError (索引中没有相应的值),但我们对此无能为力

但如果您执行例如
每日平均高度['2013-08-19']
,您将获得 a值(180.174797)

您还可以每天运行
平均高度.loc['2013-08-19']
(更一般地说,
传递任何现有的
索引值),结果相同。

在序列中,
日期
是索引,而不是列。您可以查看的语法,您需要每日平均高度。loc['2013-09-12']