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数据结构树和二叉树简介
Apr 29 Python
python转换字符串为摩尔斯电码的方法
Jul 06 Python
python如何求解两数的最大公约数
Sep 27 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
Jul 11 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
Python阶乘求和的代码详解
Feb 14 Python
Django 实现对已存在的model进行更改
Mar 28 Python
解决pip install psycopg2出错问题
Jul 09 Python
Python 忽略文件名编码的方法
Aug 01 Python
python 读取串口数据的示例
Nov 09 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
分享PHP入门的学习方法
2007/01/02 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php使用百度天气接口示例
2014/04/22 PHP
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vue生命周期实例小结
2018/08/15 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
Python实现的彩票机选器实例
2015/06/17 Python
Python内置模块logging用法实例分析
2018/02/12 Python
Python按钮的响应事件详解
2019/03/04 Python
django中间键重定向实例方法
2019/11/10 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
倩碧英国官网:Clinique英国
2018/08/10 全球购物
六年级学生评语
2014/04/22 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
工作后的感想
2015/08/07 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技