当前位置: 首页 > article >正文

pandas 将多条记录整合成一条记录,每条记录的year和month字段组成新的字段名

你可以使用 Pandas 的 pivot_table()groupby() 方法,将多条记录整合成一条,并通过 yearmonth 这两个字段生成新的字段名。具体的实现方法是通过 pivot_table()yearmonth 作为列标签,将其他列中的数据进行整合。

假设你的数据框 df 的结构如下:

import pandas as pd

data = {
    'id': [1, 1, 1, 2, 2],
    'year': [2023, 2023, 2024, 2023, 2024],
    'month': [1, 2, 1, 1, 1],
    'value': [10, 20, 30, 40, 50]
}

df = pd.DataFrame(data)
print(df)

输出的原始数据:

   id  year  month  value
0   1  2023      1     10
1   1  2023      2     20
2   1  2024      1     30
3   2  2023      1     40
4   2  2024      1     50

目标:

yearmonth 组成新的字段名,并将 value 的值填入这些新列。

实现:

  1. 创建 year_month 字段:将 yearmonth 组合成一个新的列名。
  2. 使用 pivot_table 将数据透视:将 id 作为索引,将 year_month 作为列,value 作为要填充的数据。
# 1. 创建新的列名 'year_month'
df['year_month'] = df['year'].astype(str) + '_' + df['month'].astype(str)

# 2. 使用 pivot_table 将数据透视
df_pivot = df.pivot_table(index='id', columns='year_month', values='value', aggfunc='first').reset_index()

# 3. 填充数据,避免空值
df_pivot.fillna(0, inplace=True)

# 查看结果
print(df_pivot)

输出结果:

year_month  id  2023_1  2023_2  2024_1
0            1     10.0     20.0     30.0
1            2     40.0      0.0     50.0

解释:

  1. 创建 year_month:将 yearmonth 列的值拼接成一个新的列(如 2023_1, 2023_2)。
  2. 数据透视:使用 pivot_table()id 作为索引,并将 year_month 作为新的列名,value 作为列值。
  3. 空值处理:透视后的表格中可能会有空值(例如某些 id 下没有某个 year_month),使用 fillna(0) 将其填充为 0。

这样你就能将原本多条记录整合成一条,并将 yearmonth 字段组成新的字段名。


http://www.kler.cn/news/304228.html

相关文章:

  • MySQL从C盘迁移到D盘
  • Git的学习笔记
  • 服务器与个人计算机之间的区别
  • Java项目: 基于SpringBoot+mybatis+maven课程答疑系统(含源码+数据库+毕业论文)
  • 【Ubuntu】Ubuntu双网卡配置 实现内外网互不影响同时可用
  • KubeCon China 回顾|快手的 100% 资源利用率提升:从裸机迁移大规模 Redis 到 Kubernetes
  • 深度学习--对抗生成网络(GAN, Generative Adversarial Network)
  • Pr 入门系列之三:挑选与添加媒体到序列(上)
  • UQpy | 不确定性量化Python工具箱推荐
  • Spring和MyBatis常见面试题总结
  • 房屋租赁|基于springboot的房屋租赁管理系统设计与实现(附项目源码+论文+数据库)
  • python-游戏自动化(一)(实战-自动刷视频点赞)
  • activiti第五步流程图定义会审并设置串行用户任务
  • 在RabbitMQ中四种常见的消息路由模式
  • 电能质量监测装置和防孤岛装置在特斯拉工厂分布式光伏项目的应用
  • Node.js Express 框架
  • 6、Flume安装
  • 通信工程学习:什么是PC永久连接、SPC软永久连接
  • Open-Sora代码详细解读(2):时空3D VAE
  • 双流join
  • Vmware 傻瓜式安装( Linux 网络操作系统 01)
  • 【python计算机视觉编程——10.OpenCV】
  • python画图|3D surface基础教程
  • GO Server-Sent Events (SSE)
  • Linux 基础命令-系统信息查看
  • 可测试,可维护,可移植:上位机软件分层设计的重要性
  • 【Python机器学习】循环神经网络(RNN)——审察模型内部情况
  • 警惕!尿血背后隐藏的健康危机,你不可不知的五大原因!
  • PHP 线程,进程、并发、并行 的理解
  • 大模型从失败中学习 —— 微调大模型以提升Agent性能