遍历熊猫数据框以生成日期范围

问题描述 投票:1回答:1

我有一个数据帧,如下所示-click here for image对于每个范围<< [From'到'To',我想创建一个date_range。所以我正在遍历数据框。对于每一行,都会生成一个DatetimeIndex。

我试图将其转换为数据框,并将其附加到空数据框,所以我有了整体范围。但是最终的数据帧(day_wise)最终为空!所以不知道问题出在哪里。

day_wise = pd.DataFrame(columns=['day']) for index, row in elec_ds.iterrows(): for_day = pd.date_range(start=row['From'], end=row['To'], freq='D') for_day = pd.DataFrame(for_day) day_wise.append(for_day)

python pandas time-series date-range
1个回答
0
投票
您可以完全避免for循环。假设您使用的是熊猫v0.25或更高版本,则可以使用explode

day_wise = df.apply(lambda row: pd.date_range(row['From'], row['To']), axis=1) \ .explode() \ .to_frame('Day')

结果:

Day 0 2018-10-23 0 2018-10-24 0 2018-10-25 0 2018-10-26 0 2018-10-27

说明:

    [apply(lambda ..., axis=1)使日期范围从每一行的FromTo列中
  • [explode将范围分为不同的日子
  • [to_frame将系列转换为数据框
© www.soinside.com 2019 - 2024. All rights reserved.