python 实现读取csv数据,分类求和 再写进 csv

以下是实现读取csv数据、分类求和并将结果写回csv文件中的完整攻略:

1. 读取csv数据

Python中可以使用标准库中的csv模块来处理csv文件。该模块提供了一个csv.reader函数,可以用来读取csv文件中的数据。

示例1:假设我们有一个csv文件,名为example.csv,它包含以下数据:

name,age,gender,score
Tom,18,M,95
Jerry,19,F,89
Bob,17,M,92
Amy,20,F,86

使用下面的代码可以读取该csv文件中的数据:

import csv

with open('example.csv', 'r') as f:
    reader = csv.reader(f)
    # 排除标题行
    headers = next(reader)
    data = []
    for row in reader:
        data.append(row)
print(data)

运行上述代码后,输出的结果为:

[['Tom', '18', 'M', '95'], ['Jerry', '19', 'F', '89'], ['Bob', '17', 'M', '92'], ['Amy', '20', 'F', '86']]

其中,读取文件时,需要注意文件名和路径。

2. 分类求和

示例2:我们假设有一个csv文件,名为sales.csv,它包含以下数据:

id,date,region,amount
1,2022-01-01,East,100
2,2022-01-02,East,120
3,2022-01-03,West,200
4,2022-01-04,South,150
5,2022-01-05,North,180
6,2022-01-06,East,80

现在我们想要按照region列进行分类,并计算每个地区的销售总额。使用下面的代码可以实现:

import csv
from collections import defaultdict

with open('sales.csv', 'r') as f:
    reader = csv.reader(f)
    headers = next(reader)
    data = defaultdict(int)
    for row in reader:
        data[row[2]] += int(row[3])
    print(data)

上述代码中,我们首先调用了csv.reader()函数读取 sales.csv 文件中的数据,并排除了标题行。然后使用 defaultdict(int) 定义了一个按照分类统计数量的字典 data。接着对每一行数据进行循环,并实现了通过 data[row[2]] += int(row[3]) 实现分类求和的功能。

运行上述代码后,输出的结果为:

defaultdict(<class 'int'>, {'East': 300, 'West': 200, 'South': 150, 'North': 180})

其中,每个地区的销售总额被存储在了字典 data 中。

3. 写入csv文件

Python中同样可以使用csv模块来写入csv文件。我们可以使用csv.writer()函数将数据写入csv文件。首先需要打开一个文件,并传入csv.writer()函数。csv.writer()函数的输出参数应该是同一行的各个列数据组成的列表。

示例3:我们继续拿上面的示例2,将上述字典 data 写入另一个csv文件中。实现该功能的代码如下:

import csv
from collections import defaultdict

with open('sales.csv', 'r') as f:
    reader = csv.reader(f)
    headers = next(reader)
    data = defaultdict(int)
    for row in reader:
        data[row[2]] += int(row[3])

with open('result.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['region', 'total_sales'])
    for region, sales in data.items():
        writer.writerow([region, sales])

上述代码中,我们首先读取了之前的sales.csv文件,使用 defaultdict() 实现了分类求和的功能,并将结果存放在 data 中。接着,用open()函数打开一个新的文件,该文件将被命名为 result.csv,并传递 'w' 以写入模式打开文件;因为我们打算写入新的行,所以设置 newline='',以写入 platform-native line endings。此后,我们将 writer 对象传递到循环中,从 data 取出键值对,并使用 csv.writer() 将每一行写入result.csv。

然后,在运行上述代码后,result.csv文件中的内容将会是:

region,total_sales
East,300
West,200
South,150
North,180

以上就是实现读取csv数据、分类求和并将结果写回csv文件的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 实现读取csv数据,分类求和 再写进 csv - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 10 分钟快速入门 Python3的教程

    下面是“10分钟快速入门Python3的教程”的完整攻略: 1. 安装Python3 在入门前,需要先安装Python3,在官方网站上下载对应操作系统的安装包,安装完成后,可以在命令行窗口中输入以下命令,确认Python版本是否正确: python3 –version 2. 学习Python基础语法 Python基础语法非常简洁易懂,它是一种通用编程语言,…

    python 2023年5月13日
    00
  • python爬虫中的url下载器用法详解

    Python爬虫中的URL下载器用法详解 在Python爬虫中,URL下载器是一个重要的组件,用于下载网页内容并保存到本地或内存中。以下是两个示例,介绍了如何使用Python实现URL下载器。 示例一:使用Python实现URL下载器 以下是一个示例,可以使用Python实现URL下载器: import requests def download(url):…

    python 2023年5月15日
    00
  • 如何在Python中计算残余的平方和

    计算残余的平方和是统计学中一个重要的概念,通常用于评估模型的拟合程度。在Python中,计算残余的平方和可以使用统计学模型库statsmodels中的OLS模型来实现。 以下是计算残余平方和的步骤: 1.导入必要的库:statsmodels和numpy import numpy as np import statsmodels.api as sm 2.生成样…

    python-answer 2023年3月25日
    00
  • Python list去重且保持原顺序不变的方法

    在Python中,我们可以使用多种方法对列表进行去重操作。其中,最常用的方法是使用set()函数将列表转换为集合,然后再将集合转换回列表。这种方法可以去除列表中的重复元素但是会改变列表中元素的顺序。如果我们需要保持列表中元素的原始顺序不变,可以使用以下两种方法: 方法一:使用OrderedDict 我们可以使用collections模块中的OrderedDi…

    python 2023年5月13日
    00
  • 如何将Python编译成C语言

    将 Python 编译成 C 语言可以实现 Python 代码的快速执行、无需 Python 环境、减小程序体积等等优点,本文将介绍如何进行 Python 编译成 C 的过程、实现方法及示例。 安装 Cython Cython 是一个能将 Python 代码转化为 C 代码,并能将 Python 的数据类型转换成 C 语言的数据类型的编译器,安装 Cytho…

    python 2023年5月18日
    00
  • Python处理PDF与CDF实例

    Python处理PDF与CDF实例 在统计学和数据分析中,概率密度函数(Probability Density Function,PDF)与累积分布函数(Cumulative Distribution Function,CDF)是两个非常常用的函数。Python中有许多库可以帮助我们处理PDF和CDF。本文将会为大家讲解如何使用Python处理PDF与CDF…

    python 2023年5月18日
    00
  • 如何使用Python实现ORM框架?

    以下是使用Python实现ORM框架的完整攻略。 ORM框架简介 ORM(Object-Relational Mapping)框架是一种将对象模型和关系数据库之间的映射技术。ORM框架可以将数据库中的映射为Python中的类,将表中的行映射为类的实例,将表中的列映射为类的属性。ORM框架可以使开发人员更加方便地操作数据库,而需要编写复杂的SQL语句。 步骤1…

    python 2023年5月12日
    00
  • python基础之函数和面向对象详解

    Python基础之函数和面向对象详解 函数和面向对象是Python编程中非常重要的概念。在本文中,我们将详细讨论Python中函数和面向对象的一些基本操作。 函数 函数是一段可重用的代码块,通常用于执行特定的任务。在Python中,一个函数由def关键字引导,后面紧跟函数名和一对括号。括号内可以包含一个或多个参数。 函数的定义 基本的函数定义方式如下: de…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部