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

如何基于现有DataFrame按规则提取列数据生成新DataFrame

实现方案

这个需求属于典型的长表转宽表场景,使用Python Pandas库的pivot方法即可快速实现,具体步骤如下:

  • 第一步:导入Pandas库
import pandas as pd
  • 第二步:读取/构造原始DataFrame1
    如果是从文件读取数据可使用pd.read_excel()、pd.read_csv()等方法,示例数据构造代码如下:
data = {
    "id": [1, 1, 2, 2],
    "Timestamp": ["02:15:00", "02:15:00", "03:00:00", "03:00:00"],
    "Name": ["A", "B", "A", "B"],
    "Status": ["FALSE", "TRUE", "TRUE", "FALSE"]
}
df1 = pd.DataFrame(data)
  • 第三步:执行宽表转换
# 按id、Timestamp分组,将Name字段值转为列名,Status作为对应列的值
df2 = df1.pivot(index=["id", "Timestamp"], columns="Name", values="Status")
# 按需求重命名列
df2 = df2.rename(columns={"A": "n1", "B": "n2"})
# 重置索引,将id、Timestamp从索引转为普通列
df2 = df2.reset_index()

如果存在同id、同Timestamp下有多个相同Name值的情况,可以先做分组聚合再转换,示例如下:

# 同组下取第一个Status值,可根据需求换为last、max等聚合逻辑
df1 = df1.groupby(["id", "Timestamp", "Name"])["Status"].first().reset_index()
# 再执行上面的pivot转换逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:06:04