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 isinstance函数介绍
Apr 14 Python
Python输出9*9乘法表的方法
May 25 Python
使用python实现省市三级菜单效果
Jan 20 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
用python爬取租房网站信息的代码
Dec 14 Python
利用Django模版生成树状结构实例代码
May 19 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
Python如何调用JS文件中的函数
Aug 16 Python
Python高级特性 切片 迭代解析
Aug 23 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
python实现快递价格查询系统
Mar 03 Python
Python实现视频中添加音频工具详解
Dec 06 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 GeoIP的使用教程
2011/03/09 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
JSON格式的键盘编码对照表
2015/01/29 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
2016/08/16 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
python实现给数组按片赋值的方法
2015/07/28 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
关于python字符串方法分类详解
2019/08/20 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
给同学的道歉信
2014/01/16 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
运动会加油稿100字
2014/09/19 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书