簡體   English   中英

如何用時戳作為索引切片熊貓系列?

[英]How to slice pandas series with hour stamps as index?

這是我的時間序列:

Time
00:00:00    24.364387
00:01:00    24.509357
00:02:00    24.484649
00:03:00    24.476170
00:04:00    24.458480
00:05:00    24.439327
Name: Vals, dtype: float64

如何根據特定的索引間隔訪問值? 例如myseries['00:02:00':'00:05:00']嗎? 我以為我必須將它們轉換為時間戳(但只能是小時,分鍾和秒 )。

所以我把它變成了一個數據框:

df=pd.DataFrame({'Time':myseries.index, 'Vals':myseries.vals})

如果輸入df.dtypes我得到:

Vals            float64
Time            object
dtype: object

因此, Time是一個對象,而不是datetime64[ns] 然后,我嘗試做: df['Time'].dt.time但隨后我得到: AttributeError: Can only use .dt accessor with datetimelike values

如果嘗試: df.loc['00:00:00':'00:05:00'] ,則只會得到標題。 我想念什么?

您需要使用函數pd.to_datetime(Series)。 這是代碼:

df.Time = pd.to_datetime(df.Time)

df.dtypes
Time     datetime64[ns]
Vals           float64
dtype: object

可能是您的情況,您根本不需要轉換。 將系列轉為數據框時,請執行以下操作:

df = pd.DataFrame(myseries, columns=['Vals'])

然后嘗試

df.loc['00:00:00':'00:05:00']

這是我的嘗試:

import datetime as dt myseries = pd.DataFrame([24.364387,24.509357,24.484649,24.476170,24.458480,24.439327], index=pd.to_timedelta(['00:00:00','00:01:00','00:02:00','00:03:00','00:04:00','00:05:00'])) myseries.loc[dt.timedelta(minutes=1):dt.timedelta(minutes=3)]

暫無
暫無

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

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