Python导入excel xlsx格式文件

Excel数据筛选与计算

Python 导入excel xlsx格式文件,筛选,初步计算

%reset -f
%clear

import pandas as pd

file_path = "D:/Python code/0717销售订单.xlsx".strip()

try:
    # 使用 openpyxl 引擎读取 .xlsx 文件
    df = pd.read_excel(file_path, engine='openpyxl', header=None)

    # 假设业务员名称在第11列(索引为10),ABS订单销售在第X列,订单状态在第Y列,销售规格在Z列
    salesman_col = 10  # 业务员名称的列索引
    sales_amount_col = 30  # ABS订单销售的列索引
    sales_state_col = 44  # 订单状态的列索引
    sales_type_col = 25  # 销售规格列索引

    salesmen_ABS_total = {}  # 用于存储满足条件的业务员的ABS订单销售总和
    salesmen_AS_total = {}  # 用于存储满足条件的业务员的AS订单销售总和
    salesmen = ['ZZF', 'MMM', 'WW', 'QQQ', 'WQ', 'JJJ', 'LLL', 'LQ', 'SSS']  # 我们关心的业务员列表
    eastern_men = salesmen[:5]  # 华东地区的业务员列表
    southern_men = salesmen[-4:]

    # 遍历DataFrame,累加满足条件的业务员的订单销售总和
    for index, row in df.iterrows():
        salesman_name = row[salesman_col]
        sales_state = row[sales_state_col]
        sales_amount = row[sales_amount_col]
        sales_type = row[sales_type_col]

        if (salesman_name in salesmen and sales_state in ['有效', '完结']):
            if sales_type in ['ZA6666', 'ZA6666-G', 'ZA7777', 'ZA0211-G']:
                if salesman_name in salesmen_ABS_total:
                    salesmen_ABS_total[salesman_name] += sales_amount
                else:
                    salesmen_ABS_total[salesman_name] = sales_amount
            elif sales_type in ['ZS6666', 'ZS6666-G', 'ZS7777']:
                if salesman_name in salesmen_AS_total:
                    salesmen_AS_total[salesman_name] += sales_amount
                else:
                    salesmen_AS_total[salesman_name] = sales_amount

    # 打印每个业务员的ABS订单销售总和(满足订单状态为“有效”或“完结”)
    for name in salesmen:
        if name in salesmen_ABS_total:
            print(f"{name}的ABS订单销售总和(有效或完结状态)为: {salesmen_ABS_total[name]}")
        else:
            print(f"没有找到{name}的ABS订单销售(有效或完结状态),或数据为空。")

    # 计算并打印华东地区业务员的ABS订单销售总和
    eastern_ABS_sales = sum(salesmen_ABS_total[name] for name in eastern_men if name in salesmen_ABS_total)
    print(f"华东合计的ABS订单销售总和(有效或完结状态)为:{eastern_ABS_sales}")

    # 计算并打印华南地区业务员的ABS订单销售总和
    southern_ABS_sales = sum(salesmen_ABS_total[name] for name in southern_men if name in salesmen_ABS_total)
    print(f"华南合计的ABS订单销售总和(有效或完结状态)为:{southern_ABS_sales}")

    # 打印每个业务员的AS订单销售总和(满足订单状态为“有效”或“完结”)
    for name in salesmen:
        if name in salesmen_AS_total:
            print(f"{name}的AS订单销售总和(有效或完结状态)为: {salesmen_AS_total[name]}")
        else:
            print(f"没有找到{name}的AS订单销售(有效或完结状态),或数据为空。")

    # 计算并打印华东地区业务员的AS订单销售总和
    eastern_AS_sales = sum(salesmen_AS_total[name] for name in eastern_men if name in salesmen_AS_total)
    print(f"华东合计的AS订单销售总和(有效或完结状态)为:{eastern_AS_sales}")

    # 计算并打印华南地区业务员的AS订单销售总和
    southern_AS_sales = sum(salesmen_AS_total[name] for name in southern_men if name in salesmen_AS_total)
    print(f"华南合计的AS订单销售总和(有效或完结状态)为:{southern_AS_sales}")
    


except FileNotFoundError:
    print(f"File {file_path} not found.")
except Exception as e:
    print(f"An error occurred: {e}")

Python 中,导入 `.xlsx` 文件通常使用 `pandas` 库来完成,它提供了简单且高效的方法来读取 Excel 文件。`pandas` 内部依赖 `openpyxl` 或 `xlrd` 等引擎来处理 `.xlsx` 文件。以下是具体实现方式: 读取 Excel 文件的基本方法是使用 `pandas.read_excel()` 函数。该函数支持指定文件路径、工作表名称或索引等参数,以灵活地导入数据。以下是一个基本的导入示例: ```python import pandas as pd # 读取 Excel 文件中的默认工作表 df = pd.read_excel('example.xlsx') ``` 如果 Excel 文件包含多个工作表,可以通过 `sheet_name` 参数指定要读取的工作表名称或索引。例如,读取名为 `'Sheet2'` 的工作表可以这样实现: ```python # 读取指定名称的工作表 df_sheet2 = pd.read_excel('example.xlsx', sheet_name='Sheet2') ``` 也可以通过整数索引读取特定工作表,例如 `sheet_name=1` 表示第二个工作表: ```python # 通过索引读取工作表 df_second_sheet = pd.read_excel('example.xlsx', sheet_name=1) ``` 此外,`pandas.read_excel()` 还支持多种参数,如 `header` 指定哪一行作为列名、`index_col` 设置索引列等,从而实现更复杂的数据导入需求。例如,将第一列作为索引可以使用如下代码: ```python # 设置第一列为索引 df_indexed = pd.read_excel('example.xlsx', index_col=0) ``` 如果需要同时读取多个工作表并存储为一个字典结构,也可以通过传递一个工作表名称或索引的列表实现: ```python # 读取多个工作表并存储为字典 dfs = pd.read_excel('example.xlsx', sheet_name=['Sheet1', 'Sheet2']) ``` 上述方法默认使用 `openpyxl` 作为 `.xlsx` 文件的引擎。如果系统中未安装该库,需通过以下命令进行安装: ```bash pip install openpyxl ``` 通过这些方式,Python 可以高效地导入 `.xlsx` 文件并进行后续的数据处理与分析[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值