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

如何在Python中将DataFrame的real与pred列分别垂直堆叠为新列?

Python实现DataFrame列垂直堆叠的简便方法

可以用Pandas的pd.concat结合列表推导快速实现,步骤如下:

实现代码

import pandas as pd

# 假设原DataFrame名为df
# 生成5到100的整数序列(包含100)
target_nums = range(5, 101)

# 遍历每个数字,提取对应real_*和pred_*列组成子DataFrame,再垂直拼接
result_df = pd.concat(
    [pd.DataFrame({
        'real': df[f'real_{n}'],
        'pred': df[f'pred_{n}']
    }) for n in target_nums],
    ignore_index=True
)

代码说明

  1. target_nums = range(5, 101):生成从5到100的所有整数,确保覆盖所有对应列对
  2. 列表推导部分:对每个数字n,取出原DataFrame中real_n和pred_n列,组成只有real和pred两列的小型DataFrame
  3. pd.concat(..., ignore_index=True):将所有小型DataFrame垂直堆叠,并重置索引,避免索引重复

最终生成的result_df行数为96 * 15000(5到100共96个数字),和你描述的(100-5)*15000有差异,这里是因为5到100包含首尾,实际是96个数值对;若你确实需要排除100,只需将range(5, 101)改为range(5, 100)即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:35:41