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.dtypes Unnamed: 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) 到此这篇关于Pandas实现复杂Excel的转置合并的示例代码的文章就介绍到这了,更多相关Pandas 复杂Excel的转置合并内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 利用pandas合并多个excel的方法示例 Python pandas实现excel工作表合并功能详解 Pandas读取excel合并单元格的正确方式(openpyxl合并单元格拆分并填充内容) 利用Python pandas对Excel进行合并的方法示例 利用python Pandas实现批量拆分Excel与合并Excel Pandas快速合并多张excel表格的两种方法 python使用pandas自动化合并Excel文件的实现方法 Pandas数据分析之批量拆分/合并Excel Pandas实现批量拆分与合并Excel的示例代码 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.dtypes
    
    Unnamed: 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)
    

    到此这篇关于Pandas实现复杂Excel的转置合并的示例代码的文章就介绍到这了,更多相关Pandas 复杂Excel的转置合并内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • 利用pandas合并多个excel的方法示例
    • Python pandas实现excel工作表合并功能详解
    • Pandas读取excel合并单元格的正确方式(openpyxl合并单元格拆分并填充内容)
    • 利用Python pandas对Excel进行合并的方法示例
    • 利用python Pandas实现批量拆分Excel与合并Excel
    • Pandas快速合并多张excel表格的两种方法
    • python使用pandas自动化合并Excel文件的实现方法
    • Pandas数据分析之批量拆分/合并Excel
    • Pandas实现批量拆分与合并Excel的示例代码
    • Pandas操作两个Excel实现数据对应行的合并

    站内搜索