对于给定的分类数据,可以进行增、删、改、查等操作。[大谦Excel,dqexcel点com]
查找分类
【问题描述】
查询分类数据中指定值对应的行数据。
【示例8-4】
本例使用示例3-17的数据。用pandas导入Excel文件中第1个工作表中的数据,将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL"。请查询“大小”为"M"的行数据。
- ChatGPT提示词模板
新建ChatGPT会话,在提问文本框中输入下面的提示词:
你是pandas专家。文件路径为:D:/Samples/ch08/男裤库存.xlsx。用pandas导入Excel文件中第1个工作表中的数据,引擎为”openpyxl”。将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL"。请查询“大小”为"M"的行数据并输出。添加代码注释。
2. 代码
- 根据提示词得到类似下面的代码:
# 导入pandas库
import pandas as pd
# 定义数据文件路径
file_path = "D:/Samples/ch08/男裤库存.xlsx"
# 读取Excel文件中第1个工作表中的数据,引擎为"openpyxl"
data = pd.read_excel(file_path, engine="openpyxl")
# 将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL"
data["大小"] = data["大小"].astype("category").cat.set_categories(["S", "M", "L", "XL","XXL"])
# 查询“大小”为"M"的行数据并输出
m_data = data[data["大小"]=="M"]
print(m_data)
3. 使用代码
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出查询数据。
>>> == RESTART: D:/Samples/1.py =
产品代码 颜色 大小 库存
2 A0001 白色 M 357
4 A0001 黑色 M 1520
增加分类
【问题描述】
给分类数据增加分类值。
【示例8-5】
本例使用示例3-17的数据。用pandas导入Excel文件中第1个工作表中的数据,将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL",要求增加一个分类"XS"。
- ChatGPT提示词模板
新建ChatGPT会话,在提问文本框中输入下面的提示词:
你是pandas专家。文件路径为:D:/Samples/ch08/男裤库存.xlsx。用pandas导入Excel文件中第1个工作表中的数据,引擎为”openpyxl”。将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL",请增加一个分类"XS"。输出“大小”列的所有分类。添加代码注释。
2. 代码
- 根据提示词得到类似下面的代码:
import pandas as pd # 导入pandas库
# 读取Excel文件中第1个工作表中的数据
df = pd.read_excel('D:/Samples/ch08/男裤库存.xlsx', engine='openpyxl')
# 将“大小”列的数据类型转换为分类数据,并增加一个分类"XS"
df['大小'] = df['大小'].astype('category').cat.add_categories(['XS'])
# 输出“大小”列的所有分类
print(df['大小'].cat.categories)
3. 使用代码
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出增加分类后的所有分类值。
>>> == RESTART: D:/Samples/1.py =
Index([‘L’, ‘M’, ‘S’, ‘XL’, ‘XXL’, ‘XS’], dtype=’object’)
修改分类
【问题描述】
修改分类数据中的分类值。
【示例8-6】
本例使用示例3-17的数据。用pandas导入Excel文件中第1个工作表中的数据,将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL",要求把分类"XXL"重命名为"VL"。
- ChatGPT提示词模板
新建ChatGPT会话,在提问文本框中输入下面的提示词:
你是pandas专家。文件路径为:D:/Samples/ch08/男裤库存.xlsx。用pandas导入Excel文件中第1个工作表中的数据,引擎为”openpyxl”。将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL"。把分类"XXL"重命名为"VL"。输出数据。添加代码注释。
2. 代码
- 根据提示词得到类似下面的代码:
import pandas as pd
# 读取Excel文件,引擎为"openpyxl"
df = pd.read_excel('D:/Samples/ch08/男裤库存.xlsx', engine='openpyxl')
# 将“大小”列的数据类型转换为分类数据,并定义分类的值包括:"S", "M", "L", "XL","XXL"
df["大小"] = pd.Categorical(df["大小"], categories=["S", "M", "L", "XL", "XXL"])
# 将分类"XXL"重命名为"VL"
df["大小"] = df["大小"].cat.rename_categories({"XXL": "VL"})
# 输出数据
print(df)
3. 使用代码
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出修改分类后的数据。
>>> == RESTART: D:/Samples/1.py =
产品代码 颜色 大小 库存
0 A0001 白色 XL 30
1 A0001 白色 L 760
2 A0001 白色 M 357
3 A0001 白色 S 730
4 A0001 黑色 M 1520
5 A0001 黑色 L 666
6 A0002 白色 VL 30
删除分类
【问题描述】
删除分类数据中的分类值。
【示例8-7】
本例使用示例3-17的数据。用pandas导入Excel文件中第1个工作表中的数据,将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL",要求用remove_categories方法删除分类"M"。
- ChatGPT提示词模板
新建ChatGPT会话,在提问文本框中输入下面的提示词:
你是pandas专家。文件路径为:D:/Samples/ch08/男裤库存.xlsx。用pandas导入Excel文件中第1个工作表中的数据,引擎为”openpyxl”。将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL"。用remove_categories方法删除分类"M"。输出数据。添加代码注释。
2. ChatGPT提示词模板说明
指定删除分类值的方法。
3. 代码
- 根据提示词得到类似下面的代码:
import pandas as pd
# 导入Excel文件第1个工作表中的数据,引擎为”openpyxl“
df = pd.read_excel('D:/Samples/ch08/男裤库存.xlsx', engine='openpyxl')
# 将“大小”列的数据类型转换为分类数据,分类的值包括:"S", "M", "L", "XL","XXL"
df['大小'] = df['大小'].astype('category')
df['大小'].cat.categories = ['S', 'M', 'L', 'XL', 'XXL']
# 用remove_categories方法删除分类"M"
df['大小'].cat.remove_categories('M', inplace=True)
# 输出数据
print(df)
4. 使用代码
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出删除分类值后的数据。
>>> == RESTART: D:/Samples/1.py =
产品代码 颜色 大小 库存
0 A0001 白色 XL 30
1 A0001 白色 S 760
2 A0001 白色 NaN 357
3 A0001 白色 L 730
4 A0001 黑色 NaN 1520
5 A0001 黑色 S 666
6 A0002 白色 XXL 30
可见,因为分类中删除了分类值”M”,数据中的”M”值变成了NaN,成了缺失值。