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

如何对Pandas DataFrame按单列分组、按另一列转置生成组合数据列

解决方案

分两种场景实现你的需求:

场景1:原始数据中Timestamp+col_1组合唯一(同一个日期下无重复的col_1条目)

直接用pivot转换后调整列名即可,示例代码如下:

import pandas as pd

# 示例数据构造,你可以替换成自己的df
data = {
    'col_1': ['aaa', 'abb', 'acc', 'aaa', 'abb', 'acc'],
    'Timestamp': ['22/12/2001', '22/12/2001', '22/12/2001', '23/12/2001', '23/12/2001', '23/12/2001'],
    'data_1': [0.21, 0.20, 0.12, 0.23, 0.32, 0.52],
    'data_2': [0.2, 0, 0.19, 0.21, 0.18, 0.20]
}
df = pd.DataFrame(data)

# 执行pivot转换
pivot_df = df.pivot(index='Timestamp', columns='col_1', values=['data_1', 'data_2'])
# 合并多层列名为你需要的「col_1值_数据列名」格式
pivot_df.columns = [f'{col[1]}_{col[0]}' for col in pivot_df.columns]
# 重置索引把Timestamp转为普通列
pivot_df = pivot_df.reset_index()

场景2:运行pivot后出现同一Timestamp对应多行、其余位置为空

该现象说明你的原始数据存在Timestamp+col_1重复的条目,改用pivot_table指定聚合规则即可,示例代码如下:

pivot_table_df = pd.pivot_table(
    df,
    index='Timestamp',
    columns='col_1',
    values=['data_1', 'data_2'],
    # 聚合规则可根据需求调整:first取第一条记录、sum求和、mean取均值等
    aggfunc='first'
)
# 同场景1调整列名、重置索引
pivot_table_df.columns = [f'{col[1]}_{col[0]}' for col in pivot_table_df.columns]
pivot_table_df = pivot_table_df.reset_index()

以上两种方法输出的结果都完全匹配你需要的表格结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:39:01