一、我的需求 对于这样的一个 csv 表,需要将其 (1)将营业部名称和日期和股票代码进行拼接 (2)对于除了买入金额不同的的数据需要将它们的买入金额相加,每个买入金额乘以买卖序号的符号表示该营业名称对应的买入金额 比如:xx公司,20190731,1,股票1,4000,C20201010,xxxx 我这里想要的结果是:xx公司2019713C20201010,4000 二、代码 (1)首先由于文件是 gbk,所以读取是需要注意 encoding (2)日期是int类型,所以需要转化为 字符串 import pandas as pd import numpy as np #读取数据 fil 在数据分析领域,`pandas` 是一个不可或缺的库,它提供了高效且易用的数据操作工具。本篇文章将详细解析如何使用 `pandas` 处理 CSV 文件,特别是针对题目中提到的需求,即拼接字段、合并相同记录并计算总金额。 我们需要导入必要的库,包括 `pandas` 和 `numpy`: ```python import pandas as pd import numpy as np ``` 接着,我们读取 CSV 文件。由于文件编码为 GBK,因此在调用 `pd.read_csv()` 时需要指定 `encoding` 参数: ```python filename = "test.csv" data = pd.read_csv(filename, encoding='gbk') ``` 在处理数据之前,通常需要确保所有数据都是字符串格式,以便于后续的拼接操作。可以使用 `applymap()` 函数将所有列转换为字符串: ```python data = data.applymap(str) ``` 如果日期列是整数类型,我们需要将其转换为字符串: ```python data['日期'] = data['日期'].apply(str) ``` 然后,按照题目要求,我们将营业部名称、日期和股票代码进行拼接: ```python data['name_date_code'] = data['营业部名称'] + data['日期'] + data['股票代码'] ``` 接下来,我们要计算每个组合的买入金额。这里需要用到 `买卖序号` 来确定买入或卖出,`np.sign()` 函数可以获取序列的符号: ```python data['buy'] = np.sign(data['买卖序号']) * data['买入金额'] ``` 之后,我们可以通过 `groupby()` 函数按拼接后的 `name_date_code` 对买入金额求和: ```python buy_sum = data.groupby('name_date_code')['buy'].sum() ``` 将计算出的总金额添加到原始数据中,并用 `fillna(0)` 填充缺失值: ```python data['buy_sum'] = data.loc[:, 'name_date_code'].map(buy_sum).fillna(0) ``` 为了得到最终结果,需要删除不再需要的列: ```python data = data.drop(['营业部名称', '日期', '买卖序号', '股票名', '买入金额', '股票代码', 'data_stock'], axis=1) ``` 删除重复行以确保数据的唯一性: ```python data = data.drop_duplicates() ``` 我们将处理好的数据写入新的 CSV 文件,同样注意指定编码: ```python data.to_csv("YYBD_result.csv", encoding='gbk', index=False) ``` 在总结中,我们可以学到以下几点: 1. 编码问题:通常 CSV 文件的编码是 UTF-8,但也有其他情况,如 GBK。在读写文件时需注意指定正确的编码。 2. 数据访问:`pandas` 提供了多种方式访问数据,如 `iloc` 可用于按位置访问数据。 3. 功能强大:`pandas` 提供了丰富的功能,如字符串拼接、类型转换、数据去重等,使得数据处理变得简单快捷。 除此之外,了解如何处理 CSV 文件中的缺失值、使用 `pandas` 对 CSV 文件进行数据清洗、转换以及使用 `numpy` 进行数值计算,都是数据分析师必备的技能。在实际工作中,结合这些知识,我们可以更高效地处理各种数据问题。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 10
- 资源: 971
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)