从给定的d开始切片Pandas datetime

2024-09-28 19:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想混合两个不同的数据集。一个是datetime作为索引,另一个是列。在第一个数据集中,给定一个begin_date,在第一个数据集中, 我想从begin_date开始切片5天,然后合并两个数据集。在

     date     Mean
0  2017-05-01  10
1  2017-05-02  30
2  2017-05-03  40
3  2017-05-04  50
4  2017-05-05  60
5  2017-05-06  70
6  2017-05-07  51
7  2017-05-08  66
8  2017-05-09  23


                vol1    vol2
2017-05-01  31.983047  31.985035
2017-05-02  31.158368  31.158368
2017-05-03  30.414481  30.414481
2017-05-04  29.680437  29.680680
2017-05-05  29.277345  29.277099

我最喜欢的begin_date = 2017-05-01是:

^{pr2}$

我试过了:

begin_date = '2017-05-01'
finish_date = parse(begin_date)+pd.Timedelta('5 days')
end_date = str(datetime.strftime(finish_date, '%Y-%m-%d'))
df['date'].loc[begin_date:end_date]

但它不能正确地提取那个周期。在


Tags: 数据datetimedateparse切片meandaystimedelta
1条回答
网友
1楼 · 发布于 2024-09-28 19:30:29

因此,以下几点需要记住:

  1. 将所有日期转换为pandas datetime(与begin_date相同)
  2. 如果要按日期对数据进行切片,请将其设置为索引。在

所以稍微修改一下代码:

begin_date = pd.to_datetime('2017-05-01')

(df1.set_index('date')[begin_date: begin_date + pd.Timedelta("5 days")]
 .join(df2))

如果您想从新数据框的索引中删除日期,只需在最后使用.reset_index。在

希望有帮助!在

相关问题 更多 >