如何使用rvs生成相同值行并追加指定数量到DataFrame末尾
实现方案说明
首先明确:rvs是Scipy生态中用于生成符合指定概率分布的随机样本的方法,你的需求是生成固定值的重复行,完全不符合rvs的设计使用场景,不建议用rvs实现,不仅会额外引入依赖,执行效率也远低于原生的numpy+pandas方案。
最优实现(适合万级以上大批量追加,性能最优)
核心用numpy的repeat向量化生成重复值,再通过concat合并,没有循环开销,性能最高,就算追加10万行也可以快速完成。
import pandas as pd import numpy as np # 初始化原有DataFrame df = pd.DataFrame({'a': [0, 1, 3], 'b': [8, 4, 5]}) # 配置参数:要追加的行值、追加行数 append_values = [2, 3] append_count = 2 # 生成新增行的DataFrame add_df = pd.DataFrame( np.repeat([append_values], append_count, axis=0), columns=df.columns ) # 合并得到最终结果,ignore_index自动重置行号 result = pd.concat([df, add_df], ignore_index=True)
执行后得到的result就是你需要的目标DataFrame,修改append_count即可灵活调整追加行数。
注意事项
不要使用已经废弃的DataFrame.append()方法,该方法在pandas 2.0+已经被移除,官方推荐使用pd.concat完成合并操作。
内容的提问来源于stack exchange,提问作者djfalsñdf
相关产品推荐
相关产品推荐

