Python常用的第三方模块之数据分析【pdfplumber库、Numpy库、Pandas库、Matplotlib库】
【pdfplumber库】从PDF文件中读取内容
import pdfplumber
#打开PDF文件
with pdfplumber.open('DeepSeek从入门到精通(20250204).pdf') as pdf:for i in pdf.pages: #遍历页print(i.extract_text()) #extract_text()方法提取内容print(f'----------------第{i.page_number}页结束')
【Numpy库】数据分析处理数据、矩阵等数据
示例:图像的灰度处理
import numpy as np
import matplotlib.pyplot as plt
#读取图片
n1=plt.imread('Google.jpg')
print(type(n1),n1) #数组,三位数组,最高纬度表示的是图像的高,次高纬度表示的是图像的宽,最低纬度[R,G,B]颜色
plt.imshow(n1)#编写一个灰度的公式
n2=np.array([0.299,0.587,0.114]) #创建数组
#将数组n1(RGB)颜色值与数组n2(灰度公式固定值),进行点乘运算
x=np.dot(n1,n2)
#传入数组,显示灰度
plt.imshow(x,cmap='gray')
#显示图像
plt.show()
【Pandas库】数据分析、读取Excel
示例:利用Pandas库读取Excel
import pandas as pd
import matplotlib.pyplot as plt#Pandas库:数据分析、读取Excel;Matplotlib库:数据可视化,绘制饼图、柱形图、折线图等#读取Excel文件
df=pd.read_excel('商品商品_20241212115850.xls', dtype=object) #dtype指定类型,解决pandas“读取整数带小数点”问题
print('读取Excel文件如下:')
print(df)
控制台Exce文件显示不全问题
解决方案:读取Excel文件前,添加以下代码
#pd.set_option()进行设置解决显示不全问题
# 显示全部列
pd.set_option('display.max_columns', None)
# 显示全部行
pd.set_option('display.max_row', None)
# 设置数据的显示长度(解决自动换行)
pd.set_option('display.width', None)
【Matplotlib库】数据可视化,绘制饼图、柱形图、折线图等
示例:利用Matplotlib库绘制饼图
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
# Pandas库:数据分析、读取Excel;Matplotlib库:数据可视化,绘制饼图、柱形图、折线图等
#pd.set_option()进行设置解决显示不全问题
# 显示全部列
pd.set_option('display.max_columns', None)
# 显示全部行
pd.set_option('display.max_row', None)
# 设置数据的显示长度(解决自动换行)
pd.set_option('display.width', None)#读取Excel文件
df=pd.read_excel('商品商品_20241212115850.xls', dtype=object) #dtype指定类型,解决pandas“读取整数带小数点”问题
print('读取Excel文件如下:')
print(df)#设置画布的大小
plt.figure(figsize=(10,6))
goodsName=df['商品名称']
stock=df['实际可销售库存数']
print(goodsName)
print(stock)#绘制饼图
plt.pie(stock,labels=goodsName,autopct='%1.1f%%',startangle=90) #labels就是扇形当中所的标签,autopct是设置饼图每个部分所占比例,%1.1f%%保留一位小数的百分比格式,角度startangle(可提供可不提供,提供了饼图会比较漂亮)#设置x,y轴刻度
plt.axis('equal')
plt.title('4月份商品剩余库存占比图')#显示出来
plt.show()
中文乱码问题
解决方案:读取Excel文件后,添加以下代码:
#解决matplotlib画图中文乱码问题
#1.下载中文字体SimHei,下载链接:http://139.199.170.86/downloads/SimHei.ttf
#2.安装SimHei字体到macOS,双击下载的字体文件,然后点击“安装字体”按钮。
#3.找到Matplotlib的字体目录
print('Matplotlib的字体目录:',mpl.get_data_path())
#4.找到Matplotlib的缓存目录
print('Matplotlib的缓存目录:',mpl.get_cachedir()) #/Users/用户名/.matplotlib
#5.终端删除这个缓存文件夹:rm -rf rm -rf /Users/用户名/.matplotlib/*#6.Python脚本中配置Matplotlib使用新字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置字体为SimHei
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
最终展示情况: