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

如何用Pandas为DataFrame每行生成0-23小时的新列?

为每个AN_LOG_ID生成0-23小时的多行数据

方法一:交叉合并(cross merge)

通过生成包含0-23小时的辅助DataFrame,与原数据进行交叉合并,直接得到每个ID对应所有小时的结果:

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({'AN_LOG_ID': ['00000001', '00000002', '00000003']})

# 生成0到23的小时序列
hour_df = pd.DataFrame({'HOUR': range(24)})

# 交叉合并,每个AN_LOG_ID匹配所有小时
final_df = df.merge(hour_df, how='cross')

# 查看结果
print(final_df)

方法二:assign+explode展开

先为每个AN_LOG_ID行添加一个包含0-23的小时列表,再通过explode将列表拆分为多行:

import pandas as pd

df = pd.DataFrame({'AN_LOG_ID': ['00000001', '00000002', '00000003']})

# 为每行添加HOUR列(值为0-23的列表),再展开
final_df = df.assign(HOUR=[list(range(24))]*len(df)).explode('HOUR', ignore_index=True)

# 查看结果
print(final_df)

两种方法最终都会输出符合需求的结果:每个AN_LOG_ID对应24行数据,HOUR列依次取0到23的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:05:30