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

pandas(四十三)Pandas实现复杂Excel的转置合并

一、Pandas实现复杂Excel的转置合并

示例图片
  • 读取并筛选第一张表

    df1 = pd.read_excel("第一个表.xlsx")
    df1
    
    示例图片
    # 删除无用列
    df1 = df1[['股票代码', '高数', '实际2']].copy()
    df1
    
    示例图片
    df1.dtypes股票代码      int64
    高数      float64
    实际2       int64
    dtype: object
    
  • 读取并处理第二张表

    df2 = pd.read_excel("第二个表.xlsx")
    df2
    
    示例图片
    # 将 Unnamed: 0 指定为索引列
    df2.set_index('Unnamed: 0', inplace=True)
    df2
    
    示例图片
    # 主要用到transpose做横竖转换,方便处理
    df2 = df2.transpose()
    df2
    
    示例图片
    df2.dtypesUnnamed: 0
    股票代码        object
    股票名称        object
    行业          object
    天数          object
    正负          object
    看好          object
    出手          object
    结果          object
    20210210    object
    20210209    object
    20210208    object
    20210205    object
    
    # 由于第一张表股票代码是数字,第二张表object 需要转换为number类型
    df2['股票代码'] = df2['股票代码'].astype(int)
    df2
    
  • 合并数据

    df_merge = pd.merge(left=df2, right=df1, left_on='股票代码', right_on='股票代码')
    df_merge
    
    示例图片
  • 重新队列排序

    # 重新队列排序(把list重新变成最终模样)
    columns = list(df_merge.columns)
    columns.remove('高数')
    columns.remove('实际2')
    columns.insert(columns.index("结果"), "高数")
    columns.insert(columns.index("结果"), "实际2")
    columns['股票代码','股票名称','行业','天数','正负','看好','出手','高数','实际2','结果','20210210','20210209','20210208','20210205',...]
    
  • 筛选列,专置数据、输出结果

    df_result = df_merge[columns].transpose()
    df_result.to_excel("表一表二合并结果.xlsx", header=False)
    

三、其它

import pandas as pd
import random# 学生数量
num_students = 100
# 列表包含所有的科目
subjects = ['语文', '英语', '数序', '自然', '社会', '几何', '代数', '物理', '化学']
# 使用列表推导为每个科目生成随机分数
data = {subject: [random.randint(50, 100) for _ in range(num_students)] for subject in subjects}
# 为学生生成唯一的用户名
data['用户名'] = ['student'+str(i) for i in range(1, num_students+1)]
df = pd.DataFrame(data)
print(df)
# 获取当前的列顺序
cols = df.columns.tolist()# 移除'化学'并将其插入到'英语'后面
cols.remove('化学')
physical_index = cols.index('英语')
cols.insert(physical_index + 1, '化学')# 使用新的列顺序重新排序DataFrame
df = df[cols]print(df)
http://www.lryc.cn/news/157309.html

相关文章:

  • 42、springboot 的 路径匹配 和 内容协商
  • 一文讲解Linux内核内存管理架构
  • 教你如何使用API接口获取数据
  • 集美大学计算机改考408!福建省全面改考,仅剩一个自命题院校
  • Hololens2部署很慢可能是unity工程选择不对
  • 群论学习记录
  • Fiddler安装与使用教程(2) —— 软测大玩家
  • ChatGPT集锦
  • CRM系统中的工作流管理及其重要性
  • Go framework-go-zero
  • 【Python】【Fintech】用Python和蒙特卡洛法预测投资组合未来收益
  • 网络层重点协议-IP协议(结构分析)
  • windows使用vim编辑文本powershell
  • 学单片机有前途吗?
  • 【计算机网络】 子网划分
  • vscode ros配置
  • 【权限提升-Windows提权】-UAC提权之MSF模块和UACME项目-DLL劫持-不带引号服务路径-不安全的服务权限
  • 【C++】—— 特殊类设计
  • MFC删除Button控件具体操作
  • vue、js实现页面全屏
  • 从零开始探索C语言(四)----循环
  • JS 替换 JSON 数组中的指定字段名
  • WebSocket消息推送
  • 二维码智慧门牌管理系统:让城市管理更智能、便捷
  • React动态添加标签组件
  • [Linux]套接字通信
  • MySQL的故事——MySQL架构与历史
  • 手写Mybatis:第12章-完善ORM框架,增删改查操作
  • 【1】DDR---容量计算
  • YashanDB:潜心实干,数据库核心技术突破没有捷径可走