33.多条件查询

李光朱课程 2024-04-07 01:21:32
案例导入

如下图,查询销售人员周德宇卖商品彩电的数量和总额,以及销售人员王学敏卖冰箱的数量和总额。

图1.原始数据表

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家,文件路径为:D:/Samples/销售情况-多条件查询.xlsx。该Excel文件的第一个工作表中A1:D11为给定数据,A-D列分别为“销售人员”、“商品”、“数量”和“总额”数据。用pandas导入Excel文件的数据,第1行为索引行,只导入前11行,前4列数据,引擎为"openpyxl",查询销售人员周德宇卖商品彩电的数量和总额,以及销售人员王学敏卖冰箱的数量和总额,查询结果输出为二维表格的形式。”

显示结果如下:

要完成这个任务,我们需要首先使用pandas库读取Excel文件中的数据,并基于特定的条件来查询销售人员周德宇和王学敏所销售的商品彩电和冰箱的数量和总额。下面是具体的Python代码实现:

import pandas as pd# 读取Excel文件file_path = 'D:/Samples/销售情况-多条件查询.xlsx'# 设置读取选项,只读取前11行,前4列,并且第一行为索引read_options = {'sheet_name': 0, 'header': 0, 'nrows': 11, 'usecols': 'A:D', 'engine': 'openpyxl'}# 读取数据df = pd.read_excel(file_path, **read_options)# 查询销售人员周德宇卖商品彩电的数量和总额zhou_deyu_tv_sales = df[(df['销售人员'] == '周德宇') & (df['商品'] == '彩电')].agg({'数量': 'sum', '总额': 'sum'}).to_frame().Tzhou_deyu_tv_sales.columns = ['数量', '总额']zhou_deyu_tv_sales.index = ['周德宇-彩电']# 查询销售人员王学敏卖商品冰箱的数量和总额wang_xuemin_fridge_sales = df[(df['销售人员'] == '王学敏') & (df['商品'] == '冰箱')].agg({'数量': 'sum', '总额': 'sum'}).to_frame().Twang_xuemin_fridge_sales.columns = ['数量', '总额']wang_xuemin_fridge_sales.index = ['王学敏-冰箱']# 将两个查询结果合并result = pd.concat([zhou_deyu_tv_sales, wang_xuemin_fridge_sales])# 输出查询结果print(result)

在这个脚本中,我们首先使用pd.read_excel函数来读取Excel文件,并指定了读取选项,包括只读取前11行、前4列,以及使用openpyxl作为引擎。然后,我们根据销售人员和商品的条件来过滤数据,并使用agg函数来计算符合条件的数量和总额的和。接着,我们给查询结果设置索引和列名,并使用pd.concat将两个查询结果合并为一个DataFrame。最后,我们打印出查询结果。

注意:在运行代码之前,请确保已经安装了pandas库和openpyxl库。如果未安装,可以使用pip install pandas openpyxl命令来安装。同时,确保Excel文件的路径是正确的,且Excel文件是可以被访问的。如果路径或文件名包含非ASCII字符,可能需要对路径字符串进行适当编码。

Python编辑器运行

图2.Python运行结果

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

申明:以上结果皆为实际运行结果,如遇到无法运行可在评论区留言。部分数据来自网络,如有侵权请私信告知,感谢!

0 阅读:0

李光朱课程

简介:感谢大家的关注