pandas处理csv文件的方法步骤


Posted in Python onOctober 16, 2020

一、我的需求

对于这样的一个 csv 表,需要将其
(1)将营业部名称和日期和股票代码进行拼接
(2)对于除了买入金额不同的的数据需要将它们的买入金额相加,每个买入金额乘以买卖序号的符号表示该营业名称对应的买入金额

比如:xx公司,20190731,1,股票1,4000,C20201010,xxxx
我这里想要的结果是:xx公司2019713C20201010,4000

pandas处理csv文件的方法步骤

二、代码

(1)首先由于文件是 gbk,所以读取是需要注意 encoding
(2)日期是int类型,所以需要转化为 字符串

import pandas as pd
import numpy as np

#读取数据
filename = "test.csv"
# 读取 excel 表,根据文件的编码指定编码方式
data = pd.read_csv(filename, encoding='gbk')
# 将所有内容转为字符串
# data = data.applymap(str)
# 将日期这一列转为字符串
data['日期'] = data['日期'].apply(str)

# print(data.loc[0,'营业部名称'])
# print(data.loc[0,'日期'])
# print(data.loc[0,'股票代码'])
# print(data.loc[0,'买卖序号'])
# print(data.loc[0,'买入金额'])

# 拼接:营业部名称+日期+股票代码
data['name_date_code'] = data['营业部名称'] + data['日期'] + data['股票代码']
# 取"买卖序号"的符号和买入金额相乘
# np.sign 获取序号对应的符号
data['buy'] = np.sign(data['买卖序号']) * data['买入金额']
data = data.drop(['营业部名称', '日期', '买卖序号', '股票名', '买入金额', '股票代码', 'data_stock'], axis=1)

# 将 name_date_code 相同的行,金额相加
buy_sum = data.groupby('name_date_code')['buy'].sum()
# 将相加的金额加入数据data,缺失数据用0填充
data['buy_sum'] = data.loc[:, 'name_date_code'].map(buy_sum).fillna(0)
# 将买入金额删掉,只剩下两列数据
data = data.drop(['buy'], axis=1)
# 删除重复行
data = data.drop_duplicates()
# 写入数据,同样需要注意指定编码格式
data.to_csv("YYBD_result.csv", encoding='gbk',index=False)

三、总结

(1)编码格式,正常是 utf-8 的不用指定,用默认的即可

(2)pandas 读取一行数据

# data.iloc 取一整行
print(data.iloc[0])

(3)pandas 处理数据确实很厉害,字符串拼接,类型转换,删除重复行,真方便

到此这篇关于pandas处理csv文件的方法步骤的文章就介绍到这了,更多相关pandas处理csv文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python正则分组的应用
Nov 10 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
Python中返回字典键的值的values()方法使用
May 22 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
numpy下的flatten()函数用法详解
May 27 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 Python
python3安装OCR识别库tesserocr过程图解
Apr 02 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 #Python
Python使用内置函数setattr设置对象的属性值
Oct 16 #Python
python pymysql库的常用操作
Oct 16 #Python
Python基于callable函数检测对象是否可被调用
Oct 16 #Python
python collections模块的使用
Oct 16 #Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 #Python
Django实现随机图形验证码的示例
Oct 15 #Python
You might like
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
Python中的jquery PyQuery库使用小结
2014/05/13 Python
浅谈对yield的初步理解
2017/05/29 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
人工神经网络算法知识点总结
2019/06/11 Python
Python实现word2Vec model过程解析
2019/12/16 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
python梯度下降算法的实现
2020/02/24 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
优质服务演讲稿
2014/05/14 职场文书
建筑施工安全责任书
2014/07/24 职场文书
五四青年节的活动方案
2014/08/20 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python