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

如何在Pandas DataFrame中按组将多行数据合并为Numpy数组并保留时间戳

解决方案

你可以通过groupby结合agg方法实现需求,针对不同列指定对应的聚合逻辑即可:

核心代码

import pandas as pd
import numpy as np

# 基于你的DataFrame执行分组聚合
result = df.groupby(['sample', 'col1']).agg(
    merged_data=('data_value', np.array),  # 将每组data_value转为numpy数组
    time_stamp=('time_stamp', 'first')     # 保留分组对应的time_stamp(每组值一致,取第一个即可)
).reset_index()

代码说明

  1. 分组维度:groupby(['sample', 'col1']) 按照sample和col1的唯一组合分组,精准匹配你需要的分组规则。
  2. 多列聚合:
    • 对data_value列使用np.array聚合,直接将每组的数值序列转换为numpy数组,存入新列merged_data。
    • 对time_stamp列使用'first'聚合(也可用'last'/'max',因为每组的time_stamp值完全相同),保留该分组对应的时间戳。
  3. 重置索引:reset_index() 将分组的sample和col1从索引转换为普通列,得到你需要的最终结构。

可选:生成列表而非numpy数组

如果需要merged_data为Python列表而非numpy数组,只需将np.array替换为list:

result = df.groupby(['sample', 'col1']).agg(
    merged_data=('data_value', list),
    time_stamp=('time_stamp', 'first')
).reset_index()

为什么你之前的尝试无效

你之前使用的df.to_numpy()是将整个DataFrame转为二维数组,并非按分组聚合;iloc[0:2,:]仅取固定行,也没有实现分组逻辑,因此无法得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:25:22