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 相关文章推荐
Pycharm 操作Django Model的简单运用方法
May 23 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
python对视频画框标记后保存的方法
Dec 07 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Numpy之reshape()使用详解
Dec 26 Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 Python
分析Python list操作为什么会错误
Nov 17 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导出oracle库的php代码
2009/04/20 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
2011/09/29 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
js指定步长实现单方向匀速运动
2017/07/17 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
Python实现端口检测的方法
2018/07/24 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
python实现简单井字棋游戏
2020/03/04 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
初中校园广播稿
2014/02/02 职场文书
垃圾桶标语
2014/06/24 职场文书
人事任命通知书
2015/04/21 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
python 实现图片特效处理
2022/04/03 Python
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技