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

如何为Pandas DataFrame中的列表添加子列索引(如sample 1)?

为Pandas DataFrame添加多层列索引(主列+子列)

你需要给DataFrame设置多层列索引(MultiIndex),让主列统一为Processing,子列对应Sample 1到Sample N。以下是修改后的完整代码和关键说明:

修改后的代码

import random
import numpy as np
import pandas as pd

low = 0
high = 500
sample_size = 5

def get_numbers(low, high, sample_size):
    return random.sample(range(low, high), sample_size)

# 生成多个numpy数组
p_one = np.array(get_numbers(low, high, sample_size), dtype=int)
p_two = np.array(get_numbers(low, high, sample_size), dtype=int)
p_three = np.array(get_numbers(low, high, sample_size), dtype=int)
p_four = np.array(get_numbers(low, high, sample_size), dtype=int)
p_five = np.array(get_numbers(low, high, sample_size), dtype=int)

# 将数组列表转为DataFrame,转置后让每个数组对应一列
p = [p_one, p_two, p_three, p_four, p_five]
df_rawdata = pd.DataFrame(p).T

# 构造多层列索引
multi_columns = pd.MultiIndex.from_arrays(
    [['Processing'] * len(p), [f'Sample {i+1}' for i in range(len(p))]]
)

# 为DataFrame设置多层列索引
df_rawdata.columns = multi_columns

# 查看结果
print(df_rawdata)

关键说明

  1. 调整DataFrame结构:原代码用list(zip(p))会把每个数组打包成一行的单个元素,导致仅一列。直接传入数组列表并转置(.T),让每个数组对应一列,行数匹配采样值数量。
  2. 构造多层索引:用pd.MultiIndex.from_arrays创建两层索引:
    • 第一层(主列):重复Processing,对应所有子列
    • 第二层(子列):自动生成Sample 1到Sample 5的命名
  3. 设置索引:将构造好的多层索引赋值给DataFrame的columns属性,即可实现你想要的展示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:50:29