4
poorList = [datetime.date(2016, 5, 2), 
            datetime.date(2016, 8, 26), 
            datetime.date(2016, 6, 9), 
            datetime.date(2016, 3, 4)]

dateForm.set_index(poorList)

エラーでした:</p>

ファイル「pandas\index.pyx」、137 行目、pandas.index.IndexEngine.get_loc (pandas\index.c:4066) ファイル「pandas\index.pyx」、159 行目、pandas.index.IndexEngine.get_loc ( pandas\index.c:3930) ファイル「pandas\hashtable.pyx」、675 行目、pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12408) ファイル「pandas\hashtable.pyx」、683 行目pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12359) KeyError: datetime.date(2016, 5, 2)

方法を教えてください。

4

3 に答える 3

2

DataFrame.set_index() は、引数として列名または列のリストを想定しているため、次のようにする必要があります。

dateForm['date'] = poorList
dateForm.set_index('date', inplace=True)
于 2016-09-12T04:20:00.877 に答える
1

タイムスタンプ付きのインデックスを生成するには、DatetimeIndexまたは Index コンストラクターを使用して、datetime オブジェクトのリストを渡します。

dateForm.set_index(pd.DatetimeIndex(poorList), inplace=True)  # Even pd.Index() works

もう1つの方法は、リストを配列としてset_indexキーを受け入れるように配列に変換し、それに応じてdtypeを指定することです。

dateForm.set_index(np.array(poorList, dtype='datetime64'), inplace=True)
于 2016-09-12T06:06:21.833 に答える