使用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中urllib2模块的8个使用细节分享
Jan 01 Python
深入解析Python中的上下文管理器
Jun 28 Python
Python学习小技巧之列表项的拼接
May 20 Python
多版本Python共存的配置方法
May 22 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
python实现猜数游戏
Mar 27 Python
在keras中实现查看其训练loss值
Jun 16 Python
使用django自带的user做外键的方法
Nov 30 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
在PHP中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
33种Javascript 表格排序控件收集
2009/12/03 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python获取任意xml节点值的方法
2015/05/05 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python3.5绘制随机漫步图
2018/08/27 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
某公司的.net工程师面试题笔试题
2013/11/22 面试题
高中毕业自我鉴定
2013/12/13 职场文书
法律进机关实施方案
2014/03/12 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
追悼会主持词
2014/03/20 职场文书
园艺师求职信
2014/04/27 职场文书
视光学专业自荐信
2014/06/24 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
初中家长意见
2015/06/03 职场文书
八年级数学教学反思
2016/02/17 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Redis三种集群模式详解
2021/10/05 Redis
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python