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

如何将数据集多列分组值合并至单列并按组展示?

将多列分组变量合并至单列实现分组标题与子项同列展示

我有一个包含多列分组变量的数据集,需要把分组值合并到单列,让分组标题和对应的子项在同一列展示。

现有数据集

VAR1VAR2SCORE
MALELOC120
MALELOC230
MALELOC340
FEMALELOC450
FEMALELOC560
FEMALELOC670

期望输出数据集

VAR1SCORE
MALE
LOC120
LOC230
LOC340
FEMALE
LOC450
LOC560
LOC670

Python(Pandas)实现

通用分组遍历方法

import pandas as pd

# 构造原数据集
df = pd.DataFrame({
    'VAR1': ['MALE', 'MALE', 'MALE', 'FEMALE', 'FEMALE', 'FEMALE'],
    'VAR2': ['LOC1', 'LOC2', 'LOC3', 'LOC4', 'LOC5', 'LOC6'],
    'SCORE': [20, 30, 40, 50, 60, 70]
})

result_list = []
# 遍历每个分组生成标题行和子项行
for group_name, group_data in df.groupby('VAR1'):
    # 添加分组标题行(SCORE为空)
    result_list.append(pd.DataFrame({'VAR1': [group_name], 'SCORE': ['']}))
    # 转换子项行:将VAR2替换为VAR1,保留SCORE列
    sub_df = group_data.rename(columns={'VAR2': 'VAR1'})[['VAR1', 'SCORE']]
    result_list.append(sub_df)

# 合并所有行并重置索引
final_result = pd.concat(result_list, ignore_index=True)
print(final_result)

R语言实现(dplyr + tibble)

library(dplyr)
library(tibble)

# 构造原数据集
df <- data.frame(
  VAR1 = c("MALE", "MALE", "MALE", "FEMALE", "FEMALE", "FEMALE"),
  VAR2 = c("LOC1", "LOC2", "LOC3", "LOC4", "LOC5", "LOC6"),
  SCORE = c(20, 30, 40, 50, 60, 70)
)

# 分组处理生成标题行和子项行
final_result <- df %>%
  group_by(VAR1) %>%
  group_modify(~{
    # 创建分组标题行
    title_row <- tibble(VAR1 = .y$VAR1, SCORE = NA)
    # 转换子项行,替换列名并保留目标列
    sub_rows <- .x %>% rename(VAR1 = VAR2) %>% select(VAR1, SCORE)
    # 合并标题行与子项行
    bind_rows(title_row, sub_rows)
  }) %>%
  ungroup()

print(final_result)

内容的提问来源于stack exchange,提问作者VAMSI KRISHNA Gundabattuni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:23:21