使用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抓取豆瓣图片并自动保存示例学习
Jan 10 Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
Python字符串和文件操作常用函数分析
Apr 08 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
python机器学习之贝叶斯分类
Mar 26 Python
python使用RNN实现文本分类
May 24 Python
Python实现的个人所得税计算器示例
Jun 01 Python
python开发前景如何
Jun 11 Python
结束运行python的方法
Jun 16 Python
Python如何定义有默认参数的函数
Aug 10 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
Python基础学习之奇异的GUI对话框
May 27 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
php中的时间处理
2006/10/09 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
php ci框架验证码实例分析
2013/06/26 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
javascript中字符串的定义示例代码
2013/12/19 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
django解决跨域请求的问题
2018/11/11 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
国旗下讲话演讲稿
2014/05/08 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
教师自查自纠材料
2014/10/14 职场文书
碧霞祠导游词
2015/02/09 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
廉洁自律证明
2015/06/24 职场文书
delete in子查询不走索引问题分析
2022/07/07 MySQL