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

yizhihongxing

以下是实现读取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日

相关文章

  • python&MongoDB爬取图书馆借阅记录

    在本攻略中,我们将介绍如何使用Python和MongoDB爬取图书馆借阅记录。我们将使用requests库和BeautifulSoup库来爬取网页数据,并使用pymongo库将数据存储到MongoDB数据库中。 以下是完整攻略包括两个示例。 步骤1:安装必要的库 在开始之前,我们需要安装必要的库。我们可以使用以下命令来安装这些库: pip install r…

    python 2023年5月15日
    00
  • Python:format格式化字符串详解

    Python: format格式化字符串详解 一、什么是格式化字符串? 格式化字符串是指,在定义字符串时,在字符串内部插入变量,使其能够根据不同的变量在输出时有不同的格式。 例如,在Python中,可以通过print()函数输出字符串,如: print("Hello, Python!") 输出结果为: Hello, Python! 但是,…

    python 2023年6月5日
    00
  • 批处理与python代码混合编程的方法

    批处理与 Python 代码混合编程的方法包括如下几个步骤: 在批处理文件中调用 Python 脚本; 在 Python 脚本中使用 subprocess 模块来启动批处理指令。 以下是两个示例,一个示例是在批处理文件中调用 Python 脚本,另一个示例是在 Python 脚本中使用 subprocess 模块来启动批处理指令。 示例 1:在批处理文件中调…

    python 2023年5月31日
    00
  • python中对_init_的理解及实例解析

    Python中对__init__的理解及实例解析 在Python中,__init__是一个特殊的方法,用于在创建对象时进行初始化操作。本文将详细讲解__init__的作用、用法及示例。 __init__的作用 __init__方法是Python中的构造函数,用于在创建对象时进行初始化操作。它会在对象创建后立即调用,并且只会被调用一次。在__init__方法中…

    python 2023年5月15日
    00
  • Python整数对象实现原理详解

    请看下面的详细讲解。 Python整数对象实现原理详解 什么是Python整数对象? 在Python中,整数是最基本的数据类型之一,它用来表示整数值。Python整数对象是指在Python中用来存储整数值的对象。在Python中,整数对象是不可变的,即一旦创建了一个整数对象,就不能在原地修改它的值。 Python整数对象的实现原理 在Python中,整数对象…

    python 2023年5月19日
    00
  • python pandas分组聚合详细

    下面我将详细讲解“Python Pandas 分组聚合详细”的攻略。 一、背景介绍 在数据分析和处理中,对数据进行分组和聚合是非常常见的技术。Pandas是一款Python数据处理的工具包,它提供了强大的分组和聚合功能,能够让我们轻松地对数据进行分组和聚合处理。接下来,我将详细介绍Pandas分组聚合的操作方法。 二、使用方法 在Pandas中,分组聚合的操…

    python 2023年5月14日
    00
  • python无限生成不重复(字母,数字,字符)组合的方法

    生成不重复的组合,实际上是在不断地进行排列组合操作。如果是将所有的排列组合结果存放到内存中,那么当位数较多时,内存会不可避免地爆掉。所以,我们需要一种不存储结果,而是直接生成结果的方法,那就是使用生成器。 下面是Python中无限生成不重复组合的代码示例,并且能够实现(字母,数字,字符)随意搭配的情况。 首先,我们需要导入一个random模块,它能够随机生成…

    python 2023年6月3日
    00
  • python环境路径配置以及命令行运行脚本

    关于Python环境路径配置以及命令行运行脚本的攻略,可以分为以下几个步骤: 步骤一:确认Python已安装 在开始进行Python环境路径配置以及命令行运行脚本之前,需要确认Python已经安装在本地电脑上。可以在终端输入以下命令,查看Python是否已经安装以及版本号: python –version 如果已安装,则会显示Python的版本号;如果未安…

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