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

时间:2019-10-21 00:37:08

标签: python pandas time-series date-range

我有一个数据框,如下所示: enter image description here

对于“ ”到“ ”的每个范围,我想创建一个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)

1 个答案:

答案 0 :(得分: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将系列转换为DataFrame