使用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 GAE、Django导出Excel的方法
Nov 24 Python
Python中的CURL PycURL使用例子
Jun 01 Python
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
python变量命名的7条建议
Jul 04 Python
python移位运算的实现
Jul 15 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
Mar 18 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
PHP中的超全局变量
2006/10/09 PHP
php中cookie的作用域
2008/03/27 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
PHP分页函数代码(简单实用型)
2010/12/02 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
prototype class详解
2006/09/07 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
个性与发展自我评价
2015/03/06 职场文书
个人年终总结怎么写
2015/03/09 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript
尝试使用Python爬取城市租房信息
2022/04/12 Python