Pandas如何基于单行重复数据构建指定行数的DataFrame
实现方法
你已有单行DataFrame的前提下,有3种常用方案可以快速生成4行值完全一致的目标DataFrame:
方案1:基于现有单行df直接重复拼接,改动最小
直接复用你已经写好的单行构造代码,用pd.concat把同一行数据重复拼接4次,重置索引即可,代码如下:import pandas as pd # 你原本的单行df构造代码 df = pd.DataFrame() df['a']=[1] df['b']=[2] df['c']=[3] df['d']=[1] df['e']=[2] # 拼接4次,重置索引生成0-3的行号 df_result = pd.concat([df]*4, ignore_index=True)注意:如果你的df里存了列表、字典这类可变对象,把
[df]*4换成[df.copy() for _ in range(4)]即可避免修改值时联动影响所有行,纯数值场景不需要额外处理。方案2:初始化时直接构造目标结构,执行效率更高
不需要先生成单行df再复制,初始化DataFrame时直接给每个列传入重复4次的值,一次生成结果:df_result = pd.DataFrame({ 'a': [1]*4, 'b': [2]*4, 'c': [3]*4, 'd': [1]*4, 'e': [2]*4 })方案3:用重索引+前向填充实现
基于现有单行df,把索引扩展到0-3的范围,用前向填充把第一行的值填充到所有新增行:df_result = df.reindex(range(4), method='ffill')
以上三种方法运行后打印df_result,输出效果和你给出的预期结果完全一致:
a b c d e 0 1 2 3 1 2 1 1 2 3 1 2 2 1 2 3 1 2 3 1 2 3 1 2
内容的提问来源于stack exchange,提问作者White cow
相关产品推荐
相关产品推荐

