wma*_*att 1 python datetime dataframe pandas
我有按时间顺序排序的 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)
Run Code Online (Sandbox Code Playgroud)
如果我们打印它:
...
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
Run Code Online (Sandbox Code Playgroud)
如何获取属于 DataFrame 时间索引的最后 N 分钟/小时的行?
因此,例如,如果我想要最后一个小时(从最后一行开始计算),我会从上面的示例中获得最后两行。
假设您的数据框按索引排序,您可以使用pd.Timedelta.
然后只需根据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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |