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迭代器的使用方法实例
Nov 21 Python
MySQL最常见的操作语句小结
May 07 Python
十个Python程序员易犯的错误
Dec 15 Python
Python第三方库的安装方法总结
Jun 06 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
python文件名和文件路径操作实例
Sep 29 Python
python模糊图片过滤的方法
Dec 14 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
Python PIL库图片灰化处理
Apr 07 Python
Python连接mysql方法及常用参数
Sep 01 Python
Pytest allure 命令行参数的使用
Apr 18 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
PHPlet在Windows下的安装
2006/10/09 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
php开发工具有哪五款
2015/11/09 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
超级强大的表单验证
2006/06/26 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
Python实现把类当做字典来访问
2019/12/16 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
Internet体系结构
2014/12/21 面试题
本科生职业生涯规划书范文
2014/01/21 职场文书
小学生秋游活动方案
2014/02/23 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2014年除四害工作总结
2014/12/06 职场文书