使用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数组复制拷贝的实现方法
Jun 09 Python
python的多重继承的理解
Aug 06 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
基于python判断目录或者文件代码实例
Nov 29 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
Python如何实现FTP功能
May 28 Python
OpenCV 之按位运算举例解析
Jun 19 Python
浅谈Python 参数与变量
Jun 20 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
Python读写锁实现实现代码解析
Nov 28 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
2019十大人气国漫
2020/03/13 国漫
PHP+DBM的同学录程序(1)
2006/10/09 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php经典算法集锦
2015/11/14 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python中几种导入模块的方式总结
2017/04/27 Python
python实现分页效果
2017/10/25 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
教师师德演讲稿
2014/05/06 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2015年行政部工作总结
2015/04/28 职场文书
java泛型通配符详解
2021/07/25 Java/Android
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers