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

如何合并DataFrame透视后的同索引行,整合对应列数据?

解决方案

方法一:优化初始pivot操作(推荐)

你当前的pivot后出现拆分行,是因为多余操作导致格式混乱。直接用以下代码可一步生成目标格式:

# 执行pivot并直接重命名列
dataframe = dataframe.pivot(index=['time', 'id'], columns='type', values='value')
dataframe.columns = [f"{col}_type" for col in dataframe.columns]
# 重置索引,让time和id回到列中
dataframe = dataframe.reset_index()

这段代码会自动将同一time和id下的A、B类型值合并到同一行,无需后续处理NaN。

方法二:处理已生成的含NaN的DataFrame

如果已经得到每行仅一个类型有值的DataFrame,可通过按time和id分组聚合合并行:

# 按time和id分组,取每组的第一个非NaN值
dataframe = dataframe.groupby(['time', 'id']).first().reset_index()

也可以用max()/min()聚合(NaN不参与计算,自动保留有效数值):

dataframe = dataframe.groupby(['time', 'id']).max().reset_index()

两种方法最终都会得到你需要的格式:

time id A_type B_type
9:04 1  23     12
9:10 2  81     17
9:12 3  11     2
9:14 4  88     17

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:20:38