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

如何用tsfresh实现类似pd.groupby.transform的组特征全行分配功能?

用tsfresh实现类似pandas groupby.transform的分组特征扩展功能

你可以通过提取分组特征后与原DataFrame合并的方式,实现和groupby.transform一致的效果,具体步骤如下:

  1. 用tsfresh按组提取特征,得到每组一行的特征结果
  2. 将特征结果与原DataFrame按分组键(即你的group列)做合并,自动将每组的特征值填充到组内所有行中

示例代码

import pandas as pd
import numpy as np
from tsfresh import extract_features

# 构造符合你描述的示例数据(50个组,每组10行)
df = pd.DataFrame({
    "group": [i for i in range(1, 51) for _ in range(10)],
    "value": np.random.randn(500),  # 需要提取特征的目标列
    "additional_col": np.random.rand(500)  # 原数据中的其他列
})

# 用tsfresh按group提取所有可用特征
group_level_features = extract_features(
    df, 
    column_id="group",  # 指定分组列
    column_value="value"  # 指定要提取特征的数值列
)

# 合并特征到原DataFrame,实现特征的组内全量填充
df_transformed = df.merge(group_level_features, left_on="group", right_index=True)

说明

  • tsfresh提取的group_level_features是50行的DataFrame,索引为group编号
  • 通过merge操作,原DataFrame的每一行都会根据group列匹配到对应的组特征,最终得到500行的结果,每个组的10行共享同一套特征值,完全等价于groupby.transform的效果
  • 如果需要提取多列的特征,只需调整extract_features的参数(比如用column_values指定多列),合并逻辑保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:04:57