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机器学习之SVM支持向量机
Dec 27 Python
微信跳一跳python辅助软件思路及图像识别源码解析
Jan 04 Python
Python冲顶大会 快来答题!
Jan 17 Python
python try except 捕获所有异常的实例
Oct 18 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
Nov 20 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
pip指定python位置安装软件包的方法
Jul 12 Python
使用python实现离散时间傅里叶变换的方法
Sep 02 Python
PyQt5实现画布小程序
May 30 Python
Python实现粒子群算法的示例
Feb 14 Python
Python 的 f-string 可以连接字符串与数字的原因解析
Feb 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
php中定时计划任务的实现原理
2013/01/08 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
PHP实现的日历功能示例
2018/09/01 PHP
Javascript之this关键字深入解析
2013/11/12 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python列表操作使用示例分享
2014/02/21 Python
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
python的re模块应用实例
2014/09/26 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
领导干部作风建设自查报告
2014/10/23 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
司机岗位职责范本
2015/04/10 职场文书
小学四年级作文之写景
2019/08/23 职场文书
导游词之湖州-太湖
2019/10/11 职场文书