使用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实现多线程抓取知乎用户
Dec 12 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
python 字符串只保留汉字的方法
Nov 16 Python
Python随机生成身份证号码及校验功能
Dec 04 Python
python处理大日志文件
Jul 23 Python
Python面向对象之Web静态服务器
Sep 03 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
Pytorch实验常用代码段汇总
Nov 19 Python
使用Python开发冰球小游戏
Apr 30 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
php中iconv函数使用方法
2008/05/24 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
utf8的编码算法 转载
2006/12/27 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
python自动点赞功能的实现思路
2020/02/26 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
优秀求职信范文分享
2013/12/19 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
综合素质评价自我评价
2015/03/06 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
详解Python中__new__方法的作用
2022/03/31 Python
服务器nginx权限被拒绝解决案例
2022/09/23 Servers