50. Python 数据处理(1)

简介:

今天开始往后都,用python3来写脚本

1.csv数据处理

csv文件格式:

逗号分隔符(csv),有时也称为字符分隔值,因为分隔字符也可以不是逗号,其文件以纯文本的形式存储表格数据(数字和文本)。

纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。

csv文件由任意数目的记录组成,记录间以某种换行符分割;每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。

csv数据,如以下格式:

27,20,14,15,14,12,94,64,37,1015,1013,1009,7,5,2,21,8,35,0.00,152

另外,csv文件可以直接用excel或者类似软件打开,样子都是我们常见的表格形式。


平常我们取文件内的数据存入列表一般用以下方法:

1
2
3
4
5
6
7
import  codecs
lineText  =  list ()
with codecs. open ( "sl_original_live.csv" ,encoding = "utf-8" ) as f:
     for  line  in  f.readlines():
         print  (line.split( "," ))             #以列表形式,打印每一行的数据。
         lineText.append(line.split( "," ))
     print  (lineText)                #把上面所有行作为元素数据,存入一个列表中。



csv模块用法,使用模块来处理数据:

1
2
3
4
5
6
7
import  codecs
import  csv
fileName  =  "sl_original_live.csv"
with codecs. open (fileName) as fcsv:
     linecsv  =  csv.reader(fcsv)
     rows  =  [row  for  row  in  linecsv]
     print  (rows)

以上了解即可。



2.excel数据处理

python 提供有第三方库来支持excel的操作,python处理excel文件用的第三方模块库,有xlrd、xlwt、xluntils和pyExcelerator,

除此之外,python处理excel还可以用win32comopenpyxl模块.

我们主要用xlrd、xlwt、xluntils这三个模块,pyExcelerator模块偶尔也会用:

1
2
3
4
pip install xlrd
pip install xlwt
pip install xlutils
pip install pyExcelerator

xlrd 只能进行读取excel文件,没法进行写入文件;

xlwt 可以写入文件,但是不能在已有的excel的文件上进行修改;

xluntils 可以在已有的excel文件上进行修改;

pyExcelerator 与xlwt类似,也可以用来生成excel文件


读取表单数据:

举例:按行取数据

1
2
3
4
5
6
7
8
9
10
import  xlrd
def  readExcel():
     data  =  xlrd.open_workbook( 'test.xlsx' )
     table  =  data.sheets()[ 0 ]          # 打开第一张表
     nrows  =  table.nrows           # 获取表的行数
     for  in  range (nrows):           # 循环逐行打印
         print (table.row_values(i))       #通过row_values来获取每行的值
         
if  __name__  = =  '__main__' :
     readExcel()


举例:按竖列取数据

1
2
3
4
5
import  xlrd
data  =  xlrd.open_workbook( "whsc.xlsx" )
table2  =  data.sheet_by_name( "域名" )        #sheet标签页的名称
for  col  in  range (table2.ncols):
     print  (table2.col_values(col))


举例:创建新的写入excel文件(xlwt无法修改原有文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
import  xlwt
excel  =  xlwt.Workbook()
#创建3个表
sheet1  =  excel.add_sheet( "sheet1" )
sheet2  =  excel.add_sheet( "sheet2" )
sheet3  =  excel.add_sheet( "sheet3" )
#只在第一个表sheet1里写数据,如下:
sheet1.write( 0 , 0 , "hello world1" , cell_overwrite_ok = True )
sheet1.write( 1 , 0 , "hello world2" , cell_overwrite_ok = True )
sheet1.write( 2 , 0 , "hello world3" , cell_overwrite_ok = True )
#第一个是行,第二个是列,第三个是内容,第二个参数用来确认同一个cell单元是否可以重设值。
excel.save( "hello.xlsx" )
print ( "创建hello.xlsx完成" )

效果如下:

image.png


举例:字体效果

使用样式,字体类型、加粗等效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import  xlwt
excel  =  xlwt.Workbook()
#创建3个表
sheet1  =  excel.add_sheet( "sheet1" )
sheet2  =  excel.add_sheet( "sheet2" )
sheet3  =  excel.add_sheet( "sheet3" )
#初始化样式
style  =  xlwt.XFStyle()
#为样式创建字体
font  =  xlwt.Font()
font.name  =  'Times New Roman'    #指定字体名称
font.bold  =  True               #是否加粗
#设置样式的字体
style.font  =  font
#使用样式
sheet3.write( 0 , 1 , 'some bold Times text' ,style)
#保存该excel文件,有同名文件时直接覆盖
excel.save( 'hello.xlsx' )
print ( '创建hello.xlsx文件完成!' )

效果如下:

image.png



举例:处理超链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import  codecs
import  xlwt
book  =  xlwt.Workbook()
sheet_index  =  book.add_sheet( 'index' )
line = 0
for  in  range ( 9 ):
     link  =  'HYPERLINK("{0}.txt", "{1}_11111")' . format (i, i)
     #{0}.txt是要链接的文件,{1}_11111是链接文件的内容
     sheet_index.write(i,  0 , xlwt.Formula(link))
     #第一个行号,第二个列号,第三个是写入内容link,内容里面超链接
book.save( 'simple2.xlsx' )
for  in  range ( 0 9 ):
     file  =  str (i)  +  ".txt"
     with codecs. open ( file 'w' ) as f:
         f.write( str (i) * 10 )

效果如下:

image.png


3.HTML文件转化成PDF文件

转换成pdf的三种方法:

在工作中,会遇到把html文件转换成pdf文件

python给我们提供了pdfkit这个模块,直接安装使用就可以了

下面就下来介绍一个pdfkit模块的几种用法

首先,我们安装该模块:

1
pip  install  pdfkit


1.网页转换成pdf(直接把url转换成pdf文件)

1
2
import  pdfkit
pdfkit.from_url( 'http://google.com' 'out1.pdf' )

2. Html转换成pdf

1
2
import  pdfkit
pdfkit.from_file( 'test.html' 'out2.pdf' )

3. 字符串转换成pdf

1
2
import  pdfkit
pdfkit.from_string( 'Hello lingxiangxiang!' 'out3.pdf' )

三种方法简单例子:

1
2
3
4
import  pdfkit
pdfkit.from_file( "hello.html" 1.pdf )
pdfkit.from_url( "www.baidu.com" 2.pdf )
pdfkit.from_string( "hello world" 3.pdf )

即可生成pdf文件~


举例:

抓取aming的linux教程,然后制作成pdf文件

先抓取每个的网页,然后生成pdf文件

(1)查看网页源代码

image.png


(2)查看源代码内容

image.png

和url对应规律

http://www.apelearn.com/study_v2/chapter2.html

http://www.apelearn.com/study_v2/chapter5.html

http://www.apelearn.com/study_v2/chapter7.html

... ...


通过 https://regex101.com/ 正则网站,把需要的字段给过滤出来

image.png


代码如下(未封装,回头有空封装一下):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import  os
import  re
import  pdfkit
import  requests
 
if  not  os.path.exists( "aminglinux" ):
     os.mkdir( "aminglinux" )
 
os.chdir( "aminglinux" )
 
url  =  "http://www.apelearn.com/study_v2/"
=  requests.session()
text  =  s.get(url).text
reg  =  re. compile (r '<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"(.*)\">.*<\/a><\/li>' )
result  =  reg.findall(text)
res  =  list ( set (result))
 
for  in  res:
     purl  =  "{0}{1}" . format (url, i)
     print  (purl)
     pdfFileName  =  i.replace( "html" "pdf" )
     print  (pdfFileName)
     config  =  pdfkit.configuration(wkhtmltopdf = r "C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" )
     try :
         pdfkit.from_url(purl, pdfFileName, configuration = config)
     except :
         continue


执行结果:

image.png

本文转自 听丶飞鸟说 51CTO博客,原文链接:http://blog.51cto.com/286577399/2062339




相关文章
|
6天前
|
数据挖掘 PyTorch TensorFlow
|
16天前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
60 0
|
3天前
|
算法 Python
揭秘!Python数据魔术师如何玩转线性回归,让你的预测精准到不可思议
【9月更文挑战第13天】在数据科学领域,线性回归以其优雅而强大的特性,将复杂的数据关系转化为精准的预测模型。本文将揭秘Python数据魔术师如何利用这一统计方法,实现令人惊叹的预测精度。线性回归假设自变量与因变量间存在线性关系,通过拟合直线或超平面进行预测。Python的scikit-learn库提供了简便的LinearRegression类,使模型构建、训练和预测变得简单直接。
14 5
|
5天前
|
存储 算法 测试技术
预见未来?Python线性回归算法:数据中的秘密预言家
【9月更文挑战第11天】在数据的海洋中,线性回归算法犹如智慧的预言家,助我们揭示未知。本案例通过收集房屋面积、距市中心距离等数据,利用Python的pandas和scikit-learn库构建房价预测模型。经过训练与测试,模型展现出较好的预测能力,均方根误差(RMSE)低,帮助房地产投资者做出更明智决策。尽管现实关系复杂多变,线性回归仍提供了有效工具,引领我们在数据世界中自信前行。
18 5
|
5天前
|
机器学习/深度学习 数据挖掘 TensorFlow
🔍揭秘Python数据分析奥秘,TensorFlow助力解锁数据背后的亿万商机
【9月更文挑战第11天】在信息爆炸的时代,数据如沉睡的宝藏,等待发掘。Python以简洁的语法和丰富的库生态成为数据分析的首选,而TensorFlow则为深度学习赋能,助你洞察数据核心,解锁商机。通过Pandas库,我们可以轻松处理结构化数据,进行统计分析和可视化;TensorFlow则能构建复杂的神经网络模型,捕捉非线性关系,提升预测准确性。两者的结合,让你在商业竞争中脱颖而出,把握市场脉搏,释放数据的无限价值。以下是使用Pandas进行简单数据分析的示例:
19 5
|
5天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
17 5
|
6天前
|
数据采集 数据挖掘 数据处理
使用Python和Pandas处理CSV数据
使用Python和Pandas处理CSV数据
30 5
|
7天前
|
数据采集 存储 数据挖掘
使用Python读取Excel数据
本文介绍了如何使用Python的`pandas`库读取和操作Excel文件。首先,需要安装`pandas`和`openpyxl`库。接着,通过`read_excel`函数读取Excel数据,并展示了读取特定工作表、查看数据以及计算平均值等操作。此外,还介绍了选择特定列、筛选数据和数据清洗等常用操作。`pandas`是一个强大且易用的工具,适用于日常数据处理工作。
|
8天前
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
22 2
|
18天前
|
算法 Python
Python 中的数据抽象
【8月更文挑战第29天】
25 11