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

【pandas】常用方法积累

不同pd对象基于同一列进行数据对齐

创建数据:

import pandas as pd
import torch

# 创建 user DataFrame 示例
user_data = {
    'id': ['u1233', 'u456', 'u78', 'u101', 'u112'],  # 用户ID字符串,长度不一
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],  # 用户姓名
    'age': [25, 30, 22, 35, 28]  # 用户年龄
}
user = pd.DataFrame(user_data)

# 创建 split DataFrame 示例
split_data = {
    'id': ['u456', 'u101', 'u78', 'u112', 'u1233'],  # 与 user 中的 id 对应
    'mask': ['train', 'test', 'val', 'train', 'test']  # 指定每个用户的集合
}
split = pd.DataFrame(split_data)


output:

user DataFrame:
      id     name  age
0  u1233    Alice   25
1   u456      Bob   30
2    u78  Charlie   22
3   u101    David   35
4   u112      Eve   28

split DataFrame:
      id   mask
0   u456  train
1   u101   test
2    u78    val
3   u112  train
4  u1233   test
# 1. 合并user和split,使user包含mask列
merged_df = pd.merge(user, split[['id', 'mask']], on='id', how='inner')
merged_df

# 2. 根据mask标签进行分组
train_df = merged_df[merged_df['mask'] == 'train']
test_df = merged_df[merged_df['mask'] == 'test']
val_df = merged_df[merged_df['mask'] == 'val']

train_df, test_df, val_df

output :


       id	 name	age	  mask
0	u1233	Alice	 25	  test
1	u456	  Bob	 30	 train
2	u78	  Charlie	 22	   val
3	u101	David	 35	  test
4	u112	  Eve	 28	 train

(      id   name  age   mask
 1   u456    Bob   30  train
 4   u112    Eve   28  train,
       id   name  age   mask
 0  u1233  Alice   25   test
 3   u101  David   35   test,
       id   name  age   mask
 2    u78 Charlie  22    val)

http://www.kler.cn/a/396225.html

相关文章:

  • docker与大模型(口语化原理和实操讲解)
  • 前端知识点---this的用法 , this动态绑定(Javascript)
  • 软件设计师考试大纲
  • 基于STM32的智能家居安防系统设计
  • Android 单元测试环境配置问题 Execution failed for task ‘:mergeDebugJavaResource‘.
  • Python中的HTML
  • OceanBase 升级过程研究(4.2.1.6-4.2.1.8)
  • 【CSS问题】margin塌陷
  • Hadoop 学习心得
  • 开源项目低代码表单设计器FcDesigner扩展自定义组件
  • Cadence安装
  • 跨域请求解决的核心
  • pytorch环境问题以及探索Dataloader的数据格式
  • MongoDB索引操作和执行计划Explain()详解
  • 课程管理|基于springboot+vue的在线课程管理系统(源码+数据库+文档)
  • unity3d————特殊文件夹
  • Go语言中的类型断言
  • Python连接Mysql、Postgre、ClickHouse、Redis常用库及封装方法
  • 嵌入式交叉编译:glib(未成功)
  • React状态管理之Redux
  • TVBox 网络接口
  • Go-RPC框架分层设计
  • AndroidStudio 获取 Git 提交次数和编译时间
  • ubuntu将firewall-config导出为.deb文件
  • [项目代码] YOLOv5 铁路工人安全帽安全背心识别 [目标检测]
  • 深度神经网络DNN反向传播BP算法公式推导