使用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提取html文件中的特定数据的实现代码
Mar 24 Python
python冒泡排序算法的实现代码
Nov 21 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
python中如何写类
Jun 29 Python
python自动化八大定位元素讲解
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
You might like
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
Python 忽略warning的输出方法
2018/10/18 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
Python 实现向word(docx)中输出
2020/02/13 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
伦敦一卡通:The London Pass
2018/11/30 全球购物
测试工程师岗位职责
2013/11/28 职场文书
小加工厂管理制度
2014/01/21 职场文书
解除财产保全担保书
2014/05/20 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书