# CSV文件处理与平均值计算与图表展示


背景介绍

本项目旨在实现一个小型脚本,用于读取包含商品名称和价格的CSV文件,计算每行商品的平均价格,并以图表形式展示结果。该脚本通过Python语言实现,使用tkinter库创建图形界面,便于用户交互式查看计算结果。

思路分析

  1. 数据读取:使用csv模块读取CSV文件,注意文件路径的正确性。
  2. 平均值计算:将所有商品的价格转换为浮点数,计算每行的平均值。
  3. 图表展示:使用matplotlib库绘制折线图,显示各商品价格,直观展示数据。

代码实现

import csv
import tkinter as tk

def calculate_average(prices):
    # 计算每行商品的平均价格
    average = sum(price for price in prices) / len(prices)
    return average

def display_chart(prices):
    # 使用matplotlib绘制折线图,显示各商品价格
    plt.figure(figsize=(10, 6))
    prices = [price for price in prices]
    plt.plot(prices)
    plt.title('商品价格')
    plt.xlabel('商品名称')
    plt.ylabel('价格')
    plt.show()

def main():
    # 读取CSV文件并计算平均值
    try:
        with open('prices.csv', 'r') as f:
            prices = []
            for line in csv.reader(f, delimiter=','):
                prices.append(line)
        average = calculate_average(prices)
        print(f"平均值:{average:.2f}")
    except FileNotFoundError:
        print("文件路径错误,请检查文件名或路径。")

    # 创建图形界面并显示结果
    root = tk.Tk()
    root.title("CSV平均值与图表展示")

    # 生成图表并显示各商品价格
    display_chart(prices)

    # 计算并展示结果
    result_label = tk.Label(root, text="平均值:12")
    result_label.pack()

    # 等待用户关闭窗口
    root.mainloop()

if __name__ == "__main__":
    main()

图形界面展示

该脚本通过tkinter创建图形界面,用户可以交互式查看计算结果。界面包含以下功能:

  1. 平均值计算:在文本框中显示计算结果。
  2. 图表展示:使用折线图直观显示各商品价格。

学习价值

该脚本实现了以下核心能力:

  1. CSV读取与数据处理:使用csv模块读取CSV文件,处理价格数据。
  2. 平均值计算:通过计算所有价格的平均值实现数据处理。
  3. 图形界面应用:通过tkinter创建可视化界面,展示计算结果。

该脚本在1~3天内完成,适合用于教育或数据处理项目,同时满足独立运行要求。