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实现socket端口重定向示例
Feb 10 Python
Python实现的Kmeans++算法实例
Apr 26 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
Python如何为图片添加水印
Nov 25 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
Python 元类实例解析
Apr 04 Python
python的依赖管理的实现
May 14 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
django连接oracle时setting 配置方法
Aug 29 Python
使用python求解二次规划的问题
Feb 29 Python
Python中pass的作用与使用教程
Nov 13 Python
python自动获取微信公众号最新文章的实现代码
Jul 15 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中计算字符串相似度的函数代码
2012/12/29 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
python处理大日志文件
2019/07/23 Python
np.random.seed() 的使用详解
2020/01/14 Python
python with语句的原理与用法详解
2020/03/30 Python
Python如何批量生成和调用变量
2020/11/21 Python
python lambda的使用详解
2021/02/26 Python
蛋白质世界:Protein World
2017/11/23 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
酒店副总经理岗位职责范本
2014/02/04 职场文书
委托公证书范本
2014/04/03 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书