使用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之重回函数
Oct 10 Python
python中global与nonlocal比较
Nov 21 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
python 以16进制打印输出的方法
Jul 09 Python
pycharm创建一个python包方法图解
Apr 10 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
python zip()函数的使用示例
Sep 23 Python
利用python清除移动硬盘中的临时文件
Oct 28 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
python在package下继续嵌套一个package
Apr 14 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
PHP实现简易图形计算器
2020/08/28 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
python自动化测试实例解析
2014/09/28 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
浅谈django orm 优化
2018/08/18 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
运动会入场词200字
2014/02/15 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
2014年幼师工作总结
2014/11/22 职场文书
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle