使用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实现udp数据报传输的方法
Sep 26 Python
怎样使用Python脚本日志功能
Aug 14 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
基于Python+QT的gui程序开发实现
Jul 03 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 Python
pycharm如何设置官方中文(如何汉化)
Dec 29 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python基础知识小结之集合
2015/11/25 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
python实现Virginia无密钥解密
2019/03/20 Python
python网络应用开发知识点浅析
2019/05/28 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
浅谈Python中的字符串
2020/06/10 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
高级护理专业大学生求职信
2013/10/24 职场文书
中药专业大学生医药工作求职信
2013/10/25 职场文书
军训自我鉴定范文
2014/02/13 职场文书
差生评语大全
2014/05/04 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
Python访问Redis的详细操作
2021/06/26 Python
nginx共享内存的机制详解
2022/03/21 Servers