簡體   English   中英

Python Pandas Datetime和數據框索引問題

[英]Python Pandas Datetime and dataframe indexing issue

我有一個datetime問題,我試圖將日期作為索引值的dataframe進行匹配。

例如,我有dr ,它是numpy.datetime的數組。

dr = [numpy.datetime64('2014-10-31T00:00:00.000000000'),
      numpy.datetime64('2014-11-30T00:00:00.000000000'),
      numpy.datetime64('2014-12-31T00:00:00.000000000'),
      numpy.datetime64('2015-01-31T00:00:00.000000000'),
      numpy.datetime64('2015-02-28T00:00:00.000000000'),
      numpy.datetime64('2015-03-31T00:00:00.000000000')]

然后我有帶有日期作為索引值的returndf數據returndf

print(returndf) 
             1    2    3    4    5    6    7    8    9    10
10/31/2014  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
11/30/2014  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

請忽略缺少的值

每當我嘗試匹配drreturndf中的日期時,僅使用以下代碼1個月returndf.loc[str(dr[1])]
我得到一個錯誤

KeyError: 'the label [2014-11-30T00:00:00.000000000] is not in the [index]'

如果有人可以幫助我將numpy.datetime64('2014-10-31T00:00:00.000000000')轉換為numpy.datetime64('2014-10-31T00:00:00.000000000') 10/31/2014以便將其與數據幀索引值進行匹配,我將不勝感激。

謝謝,

  1. 您的returndf索引不是DatetimeIndex Make是這樣的:

     returndf = returndf.set_index(pd.to_datetime(returndf.index)) 
  2. 您的dr是Numpy datetime64對象的列表。 那困擾我:

     dr = pd.to_datetime(dr) 
  3. 您的樣本數據清楚地表明, returndf的索引並不包括dr所有項目。 在這種情況下,請使用reindex

     returndf.reindex(dr) 1 2 3 4 5 6 7 8 9 10 2014-10-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2014-11-30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2014-12-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-02-28 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-03-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM