使用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中MySQLdb模块用法实例
Nov 10 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
python多线程用法实例详解
Jan 15 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
Python代码实现KNN算法
Dec 20 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
Python实现对特定列表进行从小到大排序操作示例
Feb 11 Python
Python之pymysql的使用小结
Jul 01 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
通过实例学习Python Excel操作
Jan 06 Python
python的变量和简单数字类型详解
Sep 15 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
PHP array 的加法操作代码
2010/07/24 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
Yii中表单用法实例详解
2016/01/05 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python中splitlines()方法的使用简介
2015/05/20 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
大学生专科毕业生自我评价
2013/11/17 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
期中考试复习计划
2015/01/19 职场文书
python入门之算法学习
2021/04/22 Python