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 相关文章推荐
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
Python中int()函数的用法浅析
Oct 17 Python
pandas object格式转float64格式的方法
Apr 10 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
pytorch 中的重要模块化接口nn.Module的使用
Apr 02 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
如何使用Python进行PDF图片识别OCR
Jan 22 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
html中select语句读取mysql表中内容
2006/10/09 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python的装饰器使用详解
2017/06/26 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
对pandas中apply函数的用法详解
2018/04/10 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
详解python中各种文件打开模式
2020/01/19 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
大学生优秀团员事迹材料
2014/01/30 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js