索引具有相同索引的两个Pandas数据帧时出现键错误

2024-10-02 20:34:31 发布

您现在位置:Python中文网/ 问答频道 /正文

Python2.7,spyder,Anaconda安装的所有软件包。在升级到pandas 0.20.3之前,代码运行良好

尝试用unicode字符串日期“2017-09-13”索引两个数据帧days和udly

它们都有相同的索引

    udly.index[-1]

    Out[13]: Timestamp('2017-09-13 00:00:00')

    days.index[-1]

    Out[14]: Timestamp('2017-09-13 00:00:00')

当索引dataframe udly时,一切顺利

^{pr2}$

但是当索引数据帧出现的时候,事情就变得棘手了

    days['2017-09-13']
    Traceback (most recent call last):
    ...........
      File "pandas\_libs\index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc (pandas\_libs\index.c:5280)

      File "pandas\_libs\index.pyx", line 154, in pandas._libs.index.IndexEngine.get_loc (pandas\_libs\index.c:5126)

      File "pandas\_libs\hashtable_class_helper.pxi", line 1210, in pandas._libs.hashtable.PyObjectHashTable.get_item (pandas\_libs\hashtable.c:20523)

      File "pandas\_libs\hashtable_class_helper.pxi", line 1218, in pandas._libs.hashtable.PyObjectHashTable.get_item (pandas\_libs\hashtable.c:20477)

    KeyError: '2017-09-13'

更新

用.loc索引可以工作,但返回给我一个熊猫系列,但我真的很想知道发生这种情况的原因,为什么我不能索引一个数据帧。在

type(udly['2017-09-13'])
Out[23]: pandas.core.frame.DataFrame

type(days.loc['2017-09-13'])
Out[24]: pandas.core.series.Series

我需要一个更为复杂的数据索引,比如2017年9月的数据。在

days['2017-09']
Out[39]: 

2017-09-11 2017-09-11
2017-09-12 2017-09-12
2017-09-13 2017-09-13

Tags: 数据inpandasgetindexlineoutdays