Python分组循环输出异常求助:燃油类型未正常显示
问题排查与修正方案
看起来你在分组统计汽车数据的时候遇到了语法和变量引用的问题,我帮你拆解一下错误点,然后给出正确的实现:
错误原因分析
你修改后的代码有两个关键问题:
- 分组字段与循环变量的解构错误:
groupby里传入df['fuel-type']虽不会直接报错,但更规范的方式是传入列名字符串'fuel-type';同时循环的变量解构部分写错了,应该用一个普通变量名(比如fuel_type)来接收分组后的燃油类型值,而非df['fuel-type']。 - 打印时的变量引用错误:你在
format里写的是固定字符串'fuel-type',这会直接输出文本而非分组后的实际值(gas/diesel),应该引用对应的循环变量。
修正后的代码
import pandas as pd df = pd.read_csv('Automobile_data1.csv') # 正确写法:groupby传入列名字符串,循环解构对应变量 for (make, fuel_type), sub_df in df.groupby(['make', 'fuel-type']): print("Make: {0}, Fuel Type: {1}".format(make, fuel_type)) print(sub_df['price'].describe())
额外优化建议
如果你想用更简洁易读的写法,可以用Python的f-string替代format:
for (make, fuel_type), sub_df in df.groupby(['make', 'fuel-type']): print(f"Make: {make}, Fuel Type: {fuel_type}") print(sub_df['price'].describe())
这样就能正常输出每个品牌对应燃油类型的价格统计结果啦~
内容的提问来源于stack exchange,提问作者saspy
相关产品推荐
相关产品推荐

