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 Paramiko模块的安装与使用详解
Nov 18 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
Python科学计算之NumPy入门教程
Jan 15 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python中asyncio模块的深入讲解
Jun 10 Python
使用python爬取抖音视频列表信息
Jul 15 Python
django中账号密码验证登陆功能的实现方法
Jul 15 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
python如何实现图片压缩
Sep 11 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
PHP学习之整理字符串
2011/04/17 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
浅析tr的隐藏和显示问题
2014/03/05 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python使用htmllib分析网页内容的方法
2015/05/08 Python
Python正规则表达式学习指南
2016/08/02 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Django实现基于类的分页功能
2019/10/31 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python如何合并多个字典或映射
2020/07/24 Python
python3 kubernetes api的使用示例
2021/01/12 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
经济管理专业毕业生推荐信
2013/11/11 职场文书
初中美术教学反思
2014/01/29 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
欠款证明
2015/06/24 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书