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 for Informatics 第11章之正则表达式(四)
Apr 21 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
tensorflow获取变量维度信息
Mar 10 Python
Python实现购物车购物小程序
Apr 18 Python
python实现自主查询实时天气
Jun 22 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
python游戏开发的五个案例分享
Mar 09 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
基于python纯函数实现井字棋游戏
May 27 Python
python调用win32接口进行截图的示例
Nov 11 Python
Python如何使用logging为Flask增加logid
Mar 30 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读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php多文件上传实现代码
2014/02/20 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
php生成圆角图片的方法
2015/04/07 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
护理专业大学生自我推荐信
2014/01/25 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
2015年工商所工作总结
2015/05/21 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python