广州-李明 2024-12-16 15:04 采纳率: 57.1%
浏览 19
已结题

python 中的pandas的数据计算和导出

说明:需要代码,如果代码符合要求,采纳时间最最早解决问题的答案

分组后的计算结果需要重新创建一个名为‘结果’命名的excel并且放在指定路径,‘结果’表格的第1个sheet的name为“数据”,第2个sheet的name为“计算”计算过程中需要使用pandas计算,excel表格保持随意,创建新的工作簿的时候不能改变原始数据表的任何内容:

要求分组计算,按照Targe来分组,Im/Cl/Spend求和,Rate=Cl/Im(这里是除法,保留2位小数)
分组后的计算结果数据:
Targe Im Cl Rate Spend
Fog Light red 12 2 0.17 1.20
Fog Light yellow 29 3 0.10 1.80


原始数据:
Date Currency ADS Name Targe Search Im Cl Rate Spend
Nov 16, 2024 USD Fog Light Fog Light red 2 inches fog Light red 11 1 9.0909% $0.60
Nov 09, 2024 USD Fog Light Fog Light red fog Light red left side 1 1 100.0000% $0.60
Nov 10, 2024 USD Fog Light Fog Light yellow Fog Light yellow 3 1 33.3333% $0.60
Nov 12, 2024 USD Fog Light Fog Light yellow Fog Light yellow 1994 6 1 16.6667% $0.60

  • 写回答

12条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2024-12-16 15:04
    关注
    让【道友老李】来帮你解答,本回答参考通义千问qwen-plus编写,并整理提供,如果还有疑问可以点击头像关注,评论或留言
    好的,我将帮助你完成这个任务。我们将使用 `pandas` 库来处理数据,并使用 `openpyxl` 库来创建和保存 Excel 文件。以下是详细的步骤和代码:

    步骤

    1. 读取原始数据:使用 pandas 读取原始数据。
    2. 分组计算:按照 Targe 分组,并计算 ImClSpend 的总和,以及 Rate
    3. 创建 Excel 文件:使用 openpyxl 创建一个新的 Excel 文件,并将结果写入两个不同的 sheet 中。

    代码实现

    import pandas as pd
    from openpyxl import Workbook
    from openpyxl.utils.dataframe import dataframe_to_rows
    
    # 读取原始数据
    data = {
        'Date': ['Nov 16, 2024', 'Nov 09, 2024', 'Nov 10, 2024', 'Nov 12, 2024'],
        'Currency': ['USD', 'USD', 'USD', 'USD'],
        'ADS Name': ['Fog Light', 'Fog Light', 'Fog Light', 'Fog Light'],
        'Targe': ['Fog Light red', 'Fog Light red', 'Fog Light yellow', 'Fog Light yellow'],
        'Search': ['2 inches fog Light red', 'fog Light red left side', 'Fog Light yellow', 'Fog Light yellow 1994'],
        'Im': [11, 1, 3, 6],
        'Cl': [1, 1, 1, 1],
        'Rate': [9.0909, 100.0000, 33.3333, 16.6667],
        'Spend': [0.60, 0.60, 0.60, 0.60]
    }
    
    df = pd.DataFrame(data)
    
    # 分组计算
    grouped = df.groupby('Targe').agg({'Im': 'sum', 'Cl': 'sum', 'Spend': 'sum'})
    grouped['Rate'] = (grouped['Cl'] / grouped['Im']).round(2)
    
    # 重置索引
    grouped.reset_index(inplace=True)
    
    # 创建新的 Excel 工作簿
    wb = Workbook()
    
    # 创建第一个 sheet 并写入原始数据
    ws1 = wb.active
    ws1.title = "数据"
    for r in dataframe_to_rows(df, index=False, header=True):
        ws1.append(r)
    
    # 创建第二个 sheet 并写入分组计算结果
    ws2 = wb.create_sheet("计算")
    for r in dataframe_to_rows(grouped, index=False, header=True):
        ws2.append(r)
    
    # 保存 Excel 文件
    file_path = '指定路径/结果.xlsx'
    wb.save(file_path)
    
    print(f"Excel 文件已保存到: {file_path}")
    

    说明

    1. 读取原始数据:我们使用字典创建了一个 DataFrame,模拟了你的原始数据。
    2. 分组计算:使用 groupby 方法按 Targe 分组,并计算 ImClSpend 的总和,以及 Rate
    3. 创建 Excel 文件:使用 openpyxl 创建一个新的 Excel 文件,并将原始数据和分组计算结果分别写入两个不同的 sheet 中。
    4. 保存文件:将 Excel 文件保存到指定路径。

    运行环境

    确保你已经安装了 pandasopenpyxl 库。如果没有安装,可以使用以下命令进行安装:

    pip install pandas openpyxl
    

    希望这段代码能满足你的需求!如果有任何问题,请随时告诉我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 赞助了问题酬金20元 12月16日
  • 创建了问题 12月16日