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

如何用Python Pandas按时间戳复制DataFrame行生成组合数据集?

解决方案

要实现原DataFrame每行与所有时间戳的配对(笛卡尔积),可以用以下两种高效方法:

方法1:利用临时键做交叉连接

这种方法直观易懂,适合新手:

import pandas as pd

# 假设原DataFrame为df,时间戳索引为ts_index
# 将时间戳索引转为DataFrame
timestamps_df = pd.DataFrame({'timestamp': ts_index})

# 添加临时键用于交叉连接
df['temp_key'] = 1
timestamps_df['temp_key'] = 1

# 执行交叉连接后删除临时键
result_df = pd.merge(df, timestamps_df, on='temp_key').drop('temp_key', axis=1)

方法2:通过多层索引构造(性能更优)

如果数据量较大,这种方法的内存和效率表现更好:

import pandas as pd

# 基于原DataFrame索引和时间戳索引创建多层索引
multi_idx = pd.MultiIndex.from_product(
    [df.index, ts_index],
    names=['original_row', 'timestamp']
)

# 映射原DataFrame数据并添加时间戳列
result_df = df.loc[multi_idx.get_level_values('original_row')].reset_index(drop=True)
result_df['timestamp'] = multi_idx.get_level_values('timestamp').to_list()

两种方法最终都会生成原行数 × 1465行的DataFrame,每行包含site、host和对应的timestamp字段,符合你需要2930行的需求(说明原DataFrame应为2行)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:05:18