使用pandas生成/读取csv文件的方法实例


Posted in Python onJuly 09, 2021

前言

csv是我接触的比较早的一种文件,比较好的是这种文件既能够以电子表格的形式查看又能够以文本的形式查看。

先引入pandas库

import pandas as pd

方法一:

1、我构造了一个cont_list,结构为列表嵌套字典,字典是每一个样本,类似于我们爬虫爬下来的数据的结构

2、利用pd.DataFrame方法先将数据转换成一个二维结构数据,如下方打印的内容所示,cloumns指定列表,列表必须是列表

3、to_csv方法可以直接保存csv文件,index=False表示csv文件不加行序号

使用pandas生成/读取csv文件的方法实例

保存csv结果

使用pandas生成/读取csv文件的方法实例

应用到我们的爬虫代码,传入的con_list就是[{},{},{}****]这样的额数据结构,encoding="utf_8_sig",encoding="gb18030”,我这边解决中文编码问题

使用pandas生成/读取csv文件的方法实例

是不是很方便就,2行代码即可搞定保存,是不是比上次讲的方法简单好多,其实很多方法,还有python的优秀库,都使python这门语言在数据分析领域有极大的优势

使用pandas生成/读取csv文件的方法实例

方法二:

流程:模拟登录→获取Html页面→正则解析所有符合条件的行→逐一将符合条件的行的所有列存入到CSVData[]临时变量中→写入到CSV文件中

核心代码:

####写入csv文件中
 
with open(self.CsvFileName, 'wb') as csvfile:
 
spamwriter = csv.writer(csvfile, dialect='excel')
 
#设置标题
 
spamwriter.writerow(["游戏账号","用户类型","游戏名称","渠道","充值类型","充值金额","返利金额","单号","日期"])
 
#将CsvData中的数据循环写入到CsvFileName文件中
 
for item in self.CsvData:
 
spamwriter.writerow(item)

完整代码:

# coding=utf-8
 
import urllib
 
import urllib2
 
import cookielib
 
import re
 
import csv
 
import sys
 
 
class Pyw():
 
#初始化数据
 
def __init__(self):
 
#登录的Url地址
 
self.LoginUrl="http://v.pyw.cn/login/check"
 
#所要获取的Url地址
 
self.PageUrl="http://v.pyw.cn/Data/accountdetail/%s"
 
# 传输的数据:用户名、密码、是否记住用户名
 
self.PostData = urllib.urlencode({
 
"username": "15880xxxxxx",
 
"password": "a123456",
 
"remember": "1"
 
})
 
#第几笔记录
 
self.PageIndex=0;
 
#循环获取共4页内容
 
self.PageTotal=1
 
#正则解析出tr
 
self.TrExp=re.compile("(?isu)<tr[^>]*>(.*?)</tr>")
 
#正则解析出td
 
self.TdExp = re.compile("(?isu)<td[^>]*>(.*?)</td>")
 
#创建cookie
 
self.cookie = cookielib.CookieJar()
 
#构建opener
 
self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))
 
#解析页面总页数
 
self.Total=4
 
#####设置csv文件
 
self.CsvFileName="Pyw.csv"
 
#####存储Csv数据
 
self.CsvData=[]
 
 
#解析网页中的内容
 
def GetPageItem(self,PageHtml):
 
#循环取出Table中的所有行
 
for row in self.TrExp.findall(PageHtml):
 
#取出当前行的所有列
 
coloumn=self.TdExp.findall(row)
 
#判断符合的记录
 
if len(coloumn) == 9:
 
# print "游戏账号:%s" % coloumn[0].strip()
 
# print "用户类型:%s" % coloumn[1].strip()
 
# print "游戏名称:%s" % coloumn[2].strip()
 
# print "渠道:%s" % coloumn[3].strip()
 
# print "充值类型:%s" % coloumn[4].strip()
 
# print "充值金额:%s" % coloumn[5].strip().replace("¥", "")
 
# print "返利金额:%s" % coloumn[6].strip().replace("¥", "")
 
# print "单号:%s" % coloumn[7].strip()
 
# print "日期:%s" % coloumn[8].strip()
 
#拼凑行数据
 
d=[coloumn[0].strip(),
 
coloumn[1].strip(),
 
coloumn[2].strip(),
 
coloumn[3].strip(),
 
coloumn[4].strip(),
 
coloumn[5].strip().replace("¥", ""),
 
coloumn[6].strip().replace("¥", ""),
 
coloumn[7].strip(),
 
coloumn[8].strip()]
 
self.CsvData.append(d)
 
 
#模拟登录并获取页面数据
 
def GetPageHtml(self):
 
try:
 
#模拟登录
 
request=urllib2.Request(url=self.LoginUrl,data=self.PostData)
 
ResultHtml=self.opener.open(request)
 
#开始执行获取页面数据
 
while self.PageTotal<=self.Total:
 
#动态拼凑所要解析的Url
 
m_PageUrl = self.PageUrl % self.PageTotal
 
#计算当期第几页
 
self.PageTotal = self.PageTotal + 1
 
#获取当前解析页面的所有内容
 
ResultHtml=self.opener.open(m_PageUrl)
 
#解析网页中的内容
 
self.GetPageItem(ResultHtml.read())
 
 
####写入Csv文件中
 
with open(self.CsvFileName, 'wb') as csvfile:
 
spamwriter = csv.writer(csvfile, dialect='excel')
 
#设置标题
 
spamwriter.writerow(["游戏账号","用户类型","游戏名称","渠道","充值类型","充值金额","返利金额","单号","日期"])
 
#将CsvData中的数据循环写入到CsvFileName文件中
 
for item in self.CsvData:
 
spamwriter.writerow(item)
 
 
print "成功导出CSV文件!"
 
except Exception,e:
 
print "404 error!%s" % e
 
#实例化类
 
p=Pyw()
 
#执行方法
 
p.GetPageHtml()

导出结果

使用pandas生成/读取csv文件的方法实例

读取CSV

import pandas as pd

data = pd.read_table('地址', sep=",")['网址'].values

print(data[1])

总结

到此这篇关于使用pandas生成/读取csv文件的文章就介绍到这了,更多相关pandas生成读取csv文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 简易计算器程序,代码就几行
Aug 29 Python
Python的Django框架中的Context使用
Jul 15 Python
Python性能提升之延迟初始化
Dec 04 Python
python利用拉链法实现字典方法示例
Mar 25 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python中pip的安装与使用教程
Aug 10 Python
老生常谈python中的重载
Nov 11 Python
python实现小球弹跳效果
May 10 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
PHP 第一节 php简介
2012/04/28 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
js 图片懒加载的实现
2020/10/21 Javascript
Python查找相似单词的方法
2015/03/05 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
大学毕业的自我鉴定
2013/10/08 职场文书
自考毕业生自我鉴定
2013/11/04 职场文书
美工的岗位职责
2013/11/14 职场文书
北京奥运会主题口号
2014/06/13 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
Java实现简单小画板
2022/06/10 Java/Android