簡體   English   中英

使用DatetimeIndex切片Pandas DataFrame

[英]Slicing Pandas DataFrame with DatetimeIndex

我按照chrologically對DataFrame進行了排序,讓我們以此為例:

import pandas as pd
import numpy as np

dates = pd.date_range('2011-04-01 00:00', periods=300, freq='min')

random_dates = pd.to_datetime(np.random.choice(dates, size=20,replace=False)).sort_values()

numbers = np.random.uniform(low=-1, high=1, size=(20,))

df = pd.DataFrame(index=random_dates, data=numbers)

如果我們打印它:

...
2011-04-01 02:03:00 -0.404476
2011-04-01 02:38:00  0.205260
2011-04-01 02:44:00  0.111812
2011-04-01 03:10:00 -0.071028
2011-04-01 03:55:00 -0.203999

如何獲取屬於DataFrame timeindex的最后N分鍾/小時的行?

因此,例如,如果我想要最后一小時(從最后一行開始計算),我將從上面的示例中獲取最后兩行。

假設您的數據框按索引排序,您可以使用pd.Timedelta從最終索引條目中減去任意時間量。

然后根據df.index過濾您的數據df.index

lower_range = df.index[-1] - pd.Timedelta(hours=1)

df = df.loc[df.index > lower_range]

print(df)

#                             0
# 2011-04-01 04:10:00 -0.116102
# 2011-04-01 04:59:00  0.364772

暫無
暫無

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

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