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不带重复的全排列代码
Aug 13 Python
Python中多线程及程序锁浅析
Jan 21 Python
解密Python中的描述符(descriptor)
Jun 03 Python
Python编程之string相关操作实例详解
Jul 22 Python
python requests 使用快速入门
Aug 31 Python
python数据结构之列表和元组的详解
Sep 23 Python
Sanic框架流式传输操作示例
Jul 18 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 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
Session的工作方式
2006/10/09 PHP
php 动态多文件上传
2009/01/18 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
10个php函数实用却不常见
2015/10/13 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
菜篮子工程实施方案
2014/03/08 职场文书
四查四看整改措施
2014/09/19 职场文书
2014年服务员工作总结
2014/11/18 职场文书
Hive导入csv文件示例
2022/06/25 数据库
js作用域及作用域链工作引擎
2022/07/07 Javascript