鸢尾花数据集代码优化:如何输出最值对应的Species信息?
优化鸢尾花数据集最值查询代码(含物种信息)
嘿,我帮你把这段代码优化一下,不仅能精准输出指定列的最值,还能把对应的物种信息一起展示出来,顺便砍掉一些没用的库导入,让代码更清爽~
几个核心优化点:
- 去掉冗余库导入:你原来导入的
numpy、scipy、matplotlib、seaborn在当前需求里完全用不上,只保留pandas就足够 - 新增最值对应物种的查询逻辑:通过定位最值所在的行,直接提取对应的
Species字段 - 兼容多个样本同属最值的情况:如果有多个样本的目标列值相同且都是最值,会把所有对应的物种都列出来
- 用格式化字符串让输出更直观易读
优化后的完整代码
import pandas as pd # 读取鸢尾花数据集 df = pd.read_csv("iris head.csv") # 指定要分析的目标列(可以换成你需要的列,比如'Sepal Width') target_column = 'Sepal Length' # 获取最小值对应的所有行 min_rows = df[df[target_column] == df[target_column].min()] # 获取最大值对应的所有行 max_rows = df[df[target_column] == df[target_column].max()] # 输出最小值及对应物种 print(f"=== {target_column} 最小值信息 ===") print(f"最小值:{min_rows[target_column].iloc[0]}") print(f"对应的物种:{'、'.join(min_rows['Species'].unique())}") # 输出最大值及对应物种 print(f"\n=== {target_column} 最大值信息 ===") print(f"最大值:{max_rows[target_column].iloc[0]}") print(f"对应的物种:{'、'.join(max_rows['Species'].unique())}")
代码细节说明:
- 定位最值行:
df[df[target_column] == df[target_column].min()]会筛选出所有目标列值等于最小值的行,避免了只处理单个样本的局限性 - 提取物种:用
unique()去重后,用join把多个物种拼接成字符串,输出更整洁 - 灵活切换列:只需要修改
target_column的值,就能快速切换分析其他列(比如花瓣长度、宽度)
如果你的数据集里每个最值只对应一个物种,代码也能正常工作,完全兼容原有场景~
内容的提问来源于stack exchange,提问作者Gerry H
相关产品推荐
相关产品推荐

