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

Pandas按索引合并并将行按值转换为新列的实现方案

Pandas长格式转宽格式:按语言生成列并保留原有数据

要实现你需要的长→宽格式转换,用Pandas的pivot(或pivot_table处理重复值场景)就能轻松搞定,步骤如下:

1. 先准备原始数据(模拟你的输入)

首先我们先把你给出的原始数据构造成DataFrame:

import pandas as pd

# 模拟你的原始长格式数据
df = pd.DataFrame({
    'some_data': ['1 12', '1 12', '1 12', '2 52', '2 52', '2 52'],
    'language': ['french', 'english', 'spanish', 'french', 'english', 'spanish'],
    'spelling': ['un', 'one', 'uno', 'deux', 'two', 'dos']
})

2. 映射语言到目标列名

因为你需要把english转成lang_en、french转成lang_fr、spanish转成lang_sp,先做一个映射转换:

# 定义语言到目标列名的映射
lang_col_mapping = {
    'english': 'lang_en',
    'french': 'lang_fr',
    'spanish': 'lang_sp'
}

# 新增一列存储转换后的列名
df['target_col'] = df['language'].map(lang_col_mapping)

3. 执行长转宽操作

用pivot方法,以some_data为索引,target_col为新列名,spelling为对应列的值:

# 转成宽格式
wide_df = df.pivot(
    index='some_data',  # 要保留的分组列(不转成新列的部分)
    columns='target_col',  # 要转成新列的字段
    values='spelling'  # 新列对应的值
).reset_index()  # 把索引转回普通列

# 调整列顺序,和你的目标格式一致
wide_df = wide_df[['some_data', 'lang_en', 'lang_fr', 'lang_sp']]

执行后得到的wide_df就是你要的目标格式:

some_data lang_en lang_fr lang_sp
0      1 12     one      un     uno
1      2 52     two    deux     dos

特殊情况处理:如果有重复的分组+语言组合

如果你的原始数据中,同一个some_data+language存在多条记录(即重复值),pivot会报错,这时候改用pivot_table并指定聚合函数(比如取第一个值、均值等):

wide_df = df.pivot_table(
    index='some_data',
    columns='target_col',
    values='spelling',
    aggfunc='first'  # 取第一个出现的值,你也可以用'mean'/'sum'等
).reset_index()

补充:如果some_data实际是多列

看你的目标格式里some_data是1 12这种复合值,如果实际是两列(比如col1=1、col2=12),只需要把index参数改成列名列表即可:

# 假设原始数据是两列
df = pd.DataFrame({
    'col1': [1,1,1,2,2,2],
    'col2': [12,12,12,52,52,52],
    'language': ['french', 'english', 'spanish', 'french', 'english', 'spanish'],
    'spelling': ['un', 'one', 'uno', 'deux', 'two', 'dos']
})

wide_df = df.pivot(
    index=['col1', 'col2'],
    columns='target_col',
    values='spelling'
).reset_index()

这样得到的结果会保留col1和col2两列,和你的目标格式对应。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:54:20