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

如何在R中转置含重复标签列与观测列的两列DataFrame

解决方法

要将堆叠的长格式DataFrame转换为目标宽格式,用Pandas可以按以下步骤操作:

1. 导入库并对应你的数据结构

import pandas as pd

# 模拟你的原始DataFrame(替换成你自己的数据集即可)
data = {
    'Labels': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'],
    'Observations': ['x1a', 'x1b', 'x1c', 'x2a', 'x2b', 'x2c', 'x3a', 'x3b', 'x3c']
}
df = pd.DataFrame(data)

2. 添加分组序号

给每个标签的观测值分配组内序号,确保同一组的A、B、C能对应到同一行:

df['row_id'] = df.groupby('Labels').cumcount()

3. 转换为宽格式

用pivot方法重塑数据:

result_df = df.pivot(index='row_id', columns='Labels', values='Observations').reset_index(drop=True)

执行后result_df就是你想要的结构,输出结果如下:

ABC
0x1ax1bx1c
1x2ax2bx2c
2x3ax3bx3c

另一种实现方式:用unstack

也可以通过设置索引后unstack完成转换:

df['row_id'] = df.groupby('Labels').cumcount()
result_df = df.set_index(['row_id', 'Labels'])['Observations'].unstack('Labels').reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:45:18