You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按列条件复制Pandas DataFrame行,使Starting_hour递增至等于Ending_hour

解决方案:扩展DataFrame至每小时粒度(含跨天场景)

完整代码实现

import pandas as pd

# 构造示例DataFrame(替换为你的实际数据)
df = pd.DataFrame({
    'Weekday': [3, 3, 4],
    'Day_in_Month': [1, 1, 2],
    'Starting_hour': [1, 3, 22],
    'Ending_hour': [3, 7, 2],
    'Power': [35, 15, 5]
})

# 定义生成小时序列的函数
def generate_hours(row):
    start = row['Starting_hour']
    end = row['Ending_hour']
    if start <= end:
        return list(range(start, end + 1))
    else:
        # 跨天场景:先覆盖当天剩余小时,再覆盖次日目标小时
        return list(range(start, 25)) + list(range(1, end + 1))

# 生成小时序列并扩展行
df['hour_sequence'] = df.apply(generate_hours, axis=1)
expanded_df = df.explode('hour_sequence').rename(columns={'hour_sequence': 'Starting_hour'})

# 重置索引(可选,让结果更整洁)
expanded_df = expanded_df.reset_index(drop=True)

# 输出结果
print(expanded_df)

步骤说明

  1. 构造小时序列:通过generate_hours函数处理每行的起始/结束小时:
    • 非跨天场景:直接生成从Starting_hour到Ending_hour的连续整数列表
    • 跨天场景:分两段生成列表,先从起始小时到24,再从1到结束小时
  2. 扩展行数据:用explode方法将每个小时序列拆分为独立行,同时将临时列重命名回原Starting_hour字段
  3. 整理结果:重置索引确保结果的索引连续有序

输出结果

运行代码后会得到你需要的扩展DataFrame,与示例完全匹配:

Weekday  Day_in_Month  Starting_hour  Ending_hour  Power
0         3             1              1            3     35
1         3             1              2            3     35
2         3             1              3            3     35
3         3             1              3            7     15
4         3             1              4            7     15
5         3             1              5            7     15
6         3             1              6            7     15
7         3             1              7            7     15
8         4             2             22            2      5
9         4             2             23            2      5
10        4             2             24            2      5
11        4             2              1            2      5
12        4             2              2            2      5

内容的提问来源于stack exchange,提问作者OAP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:46:08