pandas库 pandas 是基于Numpy的一种工具,主要用于数据分析任务。Pandas 纳入了大量库和一些标准的数据模型,提供了高校第操作大型数据集所需要的工具。pandas 的名称来自面板数据(panel data)和python数据分析(data analysis)。
可以从CSV、JSON、SQL、Microsoft Excel导入数据
主要数据结构Series(一维数据)和DataFrame(二维数据)
1 2 3 4 5 6 7 8 9 10 11 12 >>> import pandas as pd>>> mydataset = { 'sites' :['Google' ,'Runoob' ,'Wiki' ], 'number' :[1 ,2 ,3 ] } >>> myvar = pd.DataFrame(mydataset)>>> myvar sites number 0 Google 1 1 Runoob 2 2 Wiki 3
Pandas Series
Series构造方法如下:
pandas.Series(data,index,dtype,name,copy)
data:数据(ndarray类型) index:索引标签,默认从0开始 dtype:数据类型,默认自己判断 name:名称 copy:拷贝数据,默认False
1 2 3 4 5 6 7 8 9 10 11 12 13 14 >>> import pandas as pd>>> a = [1 ,2 ,3 ]>>> myvar = pd.Series(a)>>> myvar0 1 1 2 2 3 dtype: int64 >>> sites = {1 : "Google" , 2 : "Runoob" , 3 : "Wiki" }>>> myvar = pd.Series(sites, index = [1 , 2 ], name="aike" )>>> myvar1 Google2 RunoobName: aike, dtype: object
Pandas DataFrame
DataFrame构造方法:
pandas.DataFrame(data,index,columns,dtype,copy)
columns:列标签,默认为RangeIndex(0,1,2,……,n)
1 2 3 4 5 6 7 8 >>> import pandas as pd>>> data = [['Google' ,10 ],['Runoob' ,12 ],['Wike' ,13 ]]>>> df = pd.DataFrame(data,columns=['Site' ,'Age' ],dtype=float )>>> df Site Age 0 Google 10.0 1 Runoob 12.0 2 Wike 13.0
loc[ ]:返回指定索引的行
loc[[ ]]:返回多行数据
Pandas CSV文件 CSV(C omma-S eparated V alues,逗号分隔值)一般用逗号分割,以纯文本数据存储表格数据(数字和文本)。
pd.to_string( ):返回DataFrame类型数据
pd.read_csv( ):读取csv数据
pd.to_csv( ):将DataFrame存储为csv文件
df.head(n):读取回前n行
df.tail(n):读取尾部几行
df.info( ):返回表格基本信息(行列数、各列数据类型)
1 2 3 import pandas as pd df = pd.read_csv('nba.csv') print(df)
Pandas JSON JSON(J avaS cript O bject N otation,JavaScript对象表示法),存储和交换文本信息的语法。
Json可转换为DataFrame
可以从url中读取json数据
读取内嵌json
pd.json_normalize(data, record_path, meta)
1 2 3 4 5 6 7 8 9 10 import pandas as pdimport jsonwith open ('nested_list.json' ,'r' ) as f: data = json.loads(f.read()) df_nested_list = pd.json_normalize(data, record_path =['students' ]) print (df_nested_list)
Pandas 数据清洗
清洗空值
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
pdfminer库 问题描述
利用python读取PDF文本内容
运行环境
python 3.6
需要安装的库
1 2 pip install pdfminer pip install pdfminer3k
实现的源代码
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 import pyocr import importlib import sys import time importlib.reload(sys) time1 = time.time() import os.pathfrom pdfminer.pdfparser import PDFParser,PDFDocumentfrom pdfminer.pdfparser import PDFParser,PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LTTextBoxHorizontal,LAParamsfrom pdfminer.pdfinterp import PDFTextExtractionNotAllowedtext_path = r'D:\文档\预测与决策\第2章 非模型预测方法.pdf' def parse (): fp = open (text_path,'rb' ) parser = PDFParser(fp) doc = PDFDocument() parser.set_document(doc) doc.set_parser(parser) doc.initialize() if not doc.is_extractable: raise PDFTextExtractionNotAllowed else : rsrcmgr = PDFResourceManager() laparams = LAParams() device = PDFPageAggregator(rsrcmgr,laparams=laparams) interpreter = PDFPageInterpreter(rsrcmgr,device) for page in doc.get_pages(): interpreter.process_page(page) layout = device.get_result() for x in layout: if (isinstance (x,LTTextBoxHorizontal)): with open (r'C:\Users\86159\Desktop\2.txt' ,'a' ,encoding='utf-8' ) as f: results = x.get_text() print (results) f.write(results + "\n" ) if __name__ == '__main__' : parse() time2 = time.time() print ('总共消耗时间为:' ,time2-time1)
结果分析
将读取的文字存在一个TXT文档里面
pdfminer只能识别pdf里的文字,而不会读取pdf里图片里的文字内容
参考链接
https://www.cnblogs.com/wj-1314/p/9429816.html