python 实现读取csv数据,分类求和 再写进 csv
### Python 实现读取CSV数据、分类求和并写入CSV #### 一、引言 在数据分析领域,经常需要处理大量的CSV文件。CSV(Comma-Separated Values)是一种常用的文件格式,用于存储表格数据。它以纯文本形式存储数据,每行表示一个一维数组,字段之间用逗号分隔。对于数据科学家或工程师来说,能够高效地读取、处理和写入CSV文件是一项重要的技能。本文将详细介绍如何使用Python读取CSV文件中的数据,根据特定列进行分类汇总,并将结果保存到新的CSV文件中。 #### 二、准备工作 在开始编写代码之前,确保安装了必要的Python库。本文主要使用`pandas`库来处理CSV文件,因为它提供了强大的数据结构和数据分析工具。如果还未安装`pandas`,可以通过以下命令安装: ```bash pip install pandas ``` #### 三、读取CSV文件 我们需要读取CSV文件中的数据。假设有一个名为`orderBook.csv`的文件,其中包含两列:`AskPrice`和`AskQuantity`。我们将使用`pandas`的`read_csv()`函数读取这个文件。 ```python import pandas as pd # 读取CSV文件 df = pd.read_csv('D:\\test\\orderBook.csv') ``` #### 四、数据预览 读取完成后,可以使用`head()`函数预览数据的前几行,以便了解数据的结构和内容。 ```python print(df.head()) ``` #### 五、分类求和 接下来,我们需要根据`AskPrice`列的值对`AskQuantity`列进行求和。这可以通过`groupby()`方法和`sum()`方法轻松完成。 ```python # 根据AskPrice列进行分组,并对AskQuantity列求和 df_sum = df.groupby('AskPrice')['AskQuantity'].sum() # 查看结果 print(df_sum) ``` #### 六、结果写入新CSV文件 最后一步是将计算出的结果保存到一个新的CSV文件中。使用`to_csv()`函数可以轻松完成此操作。 ```python # 将结果保存到新的CSV文件 df_sum.to_csv('D:\\test\\orderBook2.csv') ``` #### 七、示例完整代码 将上述步骤组合成一个完整的示例: ```python import pandas as pd # 读取CSV文件 df = pd.read_csv('D:\\test\\orderBook.csv') # 根据AskPrice列进行分组,并对AskQuantity列求和 df_sum = df.groupby('AskPrice')['AskQuantity'].sum() # 将结果保存到新的CSV文件 df_sum.to_csv('D:\\test\\orderBook2.csv') ``` #### 八、扩展知识点:Python处理CSV文件 除了上述基础操作外,还可以使用Python处理更复杂的CSV文件任务,例如根据场景分类将图像文件移动到不同的文件夹中。 ```python import os import pandas as pd import shutil # 读取Excel文件 af = pd.read_excel('19.xlsx') ww = af.values.tolist() # 获取所有图像文件名 filename = os.listdir('F:\\工作\\比赛\\未来杯\\image_scene_training\\data') # 初始化列表 list_0 = [] list_file = [] flag = [] # 处理图像文件名 for i in ww: for j in i: list_0.append(j) for name in filename: list_file.append(name[0:-4]) # 检查文件是否存在于列表中 for name in list_file: if name in list_0: flag.append(True) else: flag.append(False) # 移动符合条件的图像文件 for name in list_file: if flag[list_file.index(name)]: oldname = u'F:\\工作\\比赛\\未来杯\\image_scene_training\\data\\' + name + '.jpg' newname = u'F:\\工作\\比赛\\未来杯\\image_scene_training\\train_data\\beach\\' + name + '.jpg' shutil.copyfile(oldname, newname) ``` #### 九、常见问题及解决方案 在处理CSV文件时可能会遇到一些常见的问题,如编码错误。例如,当尝试读取某些非UTF-8编码的文件时,可能会遇到`UnicodeDecodeError`。为了解决这个问题,可以更改文件的编码方式或者修改读取文件时的编码设置。 1. **升级pip** ```bash python -m pip install --upgrade pip ``` 2. **修改编码** 如果是在Windows环境下,可能需要将`pip`的默认编码改为`gbk`。这可以通过修改`pip`的相关文件来实现。 找到路径:`lib\site-packages\pip\compat\__init__.py` 修改代码: ```python returns.decode('gbk') ``` 通过以上步骤,我们可以有效地使用Python读取、处理和写入CSV文件,解决实际工作中遇到的各种问题。这些技巧不仅适用于本文提到的具体案例,也可以广泛应用于各种数据分析项目中。