簡體   English   中英

按日期時間進行索引pandas數據幀失敗

[英]Indexing by datetime pandas dataframe fail

我有以下數據幀df

                          Candy       Apple      Banana
2016-09-14 19:00:00  109.202060  121.194138  130.372082
2016-09-14 20:00:00  109.199083  121.188817  130.380736
2016-09-14 21:00:00  109.198894  121.180553  130.366054
2016-09-14 22:00:00  109.192076  121.148722  130.307342
2016-09-14 23:00:00  109.184374  121.131068  130.276691
2016-09-15 00:00:00  109.191582  121.159304  130.316872
2016-09-15 01:00:00  109.183895  121.133062  130.269966
2016-09-15 02:00:00  109.193550  121.174708  130.337563
2016-09-15 03:00:00  109.196597  121.153076  130.274463
2016-09-15 04:00:00  109.195608  121.168936  130.276042
2016-09-15 05:00:00  109.211957  121.208946  130.330430
2016-09-15 06:00:00  109.210598  121.214454  130.365404
2016-09-15 07:00:00  109.224667  121.285534  130.508604
2016-09-15 08:00:00  109.220784  121.248828  130.389024
2016-09-15 09:00:00  109.199448  121.155439  130.212834
2016-09-15 10:00:00  109.226648  121.276439  130.427642
2016-09-15 11:00:00  109.239957  121.311719  130.462447

我想用過去6小時的數據創建第二個數據幀。

df.index = pd.to_datetime(df.index,infer_datetime_format=True)

last_row = df.tail(1).index

six_hour = last_row - timedelta(hours=6)

df_6hr = df.loc[six_hour:last_row]
print df_6hr

我收到以下錯誤:

在pandas.tslib.Timestamp中輸入“pandas / tslib.pyx”,第298行。 new (pandas / tslib.c:9013)
在pandas.tslib.convert_to_tsobject中記錄“pandas / tslib.pyx”,第1330行(pandas / tslib.c:25826)

TypeError:無法將輸入轉換為Timestamp

怎么沒用呢?

您需要添加[0] ,因為您需要選擇列表的第一項:

last_row = df.tail(1).index[0]
print (last_row)
2016-09-15 11:00:00

last_row = df.tail(1).index
print (last_row)
DatetimeIndex(['2016-09-15 11:00:00'], dtype='datetime64[ns]', freq=None)

更好的解決方案是通過[-1]選擇索引的最后一個值:

last_row = df.index[-1]
print (last_row)
2016-09-15 11:00:00

暫無
暫無

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

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