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获取系统默认字符编码的方法
Jun 04 Python
Python 处理数据的实例详解
Aug 10 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
django反向解析和正向解析的方式
Jun 05 Python
详解Python中的正则表达式
Jul 08 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
python实现支付宝转账接口
May 07 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
python第三方库学习笔记
Feb 07 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
python topk()函数求最大和最小值实例
Apr 02 Python
python openCV实现摄像头获取人脸图片
Aug 20 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
用Socket发送电子邮件
2006/10/09 PHP
杏林同学录(九)
2006/10/09 PHP
smarty简单分页的实现方法
2014/10/27 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
围观tangram js库
2010/12/28 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
vant实现购物车功能
2020/06/29 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
Python决策树分类算法学习
2017/12/22 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
python SVM 线性分类模型的实现
2019/07/19 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
AJax面试题
2014/11/25 面试题
企业演讲稿范文大全
2014/05/20 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
员工旷工检讨书
2015/08/15 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
Hive日期格式转换方法总结
2022/06/25 数据库