天天看点

Python常用的库都有哪些?10个Python库用法总结,可直接使用

作者:大话数据分析

Python有哪些常用库?如在数据清洗时使用numpy和pandas包,数据可视化时使用matplotlib库,matplotlib库上手容易,更高级的学习seaborn库,seaborn库是改良matplotlib库的图表画法,如果创建有交互性的图表,可以使用Pyecharts库,还有一些其他在自动化办公中使用到的库。

Python的作用绝不仅仅只是做数据清洗和数据可视化,其作用还有很多,有许多意想不到的功能,可以高效的做数据处理、数据可视化,以及可以实现自动化办公,这里仅仅举例讲讲Python使用最多的几个包,欢迎大家补充,下面一起来学习。

Numpy

官网https://www.numpy.org.cn/

NumPy是Python中科学计算的基础包。该库提供多维数组对象,各种派生对象,以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

NumPy包的核心是 ndarray 对象。封装了python原生的同数据类型的 n 维数组,为保证其性能优良,其中许多操作都是代码在本地进行编译后执行的。

NumPy的主要对象是同构多维数组。它是一个元素表,所有类型都相同,由非负整数元组索引。在NumPy维度中称为轴 。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

Pandas

官网https://www.pypandas.cn/

Pandas 是 Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据,广泛应用于数据分析领域,Pandas 适用于处理与 Excel 表类似的表格数据,以及有序和无序的时间序列数据等。

Pandas 的主要数据结构是 Series(一维数据)和 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学等领域的大多数典型用例,使用pandas进行数据分析流程包含数据整理与清洗、数据分析与建模、数据可视化与制表等阶段。

  • 灵活的分组功能:(group by)数据分组、聚合、转换数据;
  • 直观地合并功能:(merge)数据连接;
  • 灵活地重塑功能:(reshape)数据重塑;
Python常用的库都有哪些?10个Python库用法总结,可直接使用

Matplotlib

官网https://www.matplotlib.org.cn/

Matplotlib是一个Python 2D绘图库,以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。可用于Python脚本,Python和IPython Shell、Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。

Matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能,只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等。

该 pyplot 模块提供了类似于MATLAB的界面,尤其是与IPython结合使用时,对于高级用户,可以通过面向对象的界面或MATLAB用户熟悉的一组功能来完全控制线型,字体属性,轴属性等。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

Seaborn

官网http://seaborn.pydata.org/

Seaborn 是一个基于matplotlib的 Python 数据可视化库,它建立在matplotlib之上,并与Pandas数据结构紧密集成,用于绘制有吸引力和信息丰富的统计图形的高级界面。

Seaborn 可用于探索数据,它的绘图功能对包含整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合以生成信息图,其面向数据集的声明式 API可以专注于绘图的不同元素的含义,而不是如何绘制它们的细节。

Matplotlib 拥有全面而强大的 API,几乎可以根据自己的喜好更改图形的任何属性,seaborn 的高级界面和 matplotlib 的深度可定制性相结合,使得Seaborn既可以快速探索数据,又可以创建可定制为出版质量最终产品的图形。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

Pyecharts

官网https://pyecharts.org/#/

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

Pyecharts具有简洁的 API 设计,使用如丝滑般流畅,支持链式调用,囊括了 30+ 种常见图表,应有尽有,支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab,拥有高度灵活的配置项,可轻松搭配出精美的图表。

Pyecharts强大的数据交互功能,使数据表达信息更加生动,增加了人机互动效果,并且数据呈现效果可直接导出为html文件,增加数据结果交互的机会,使得信息沟通更加容易。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

Pyecharts有着丰富的图表素材,支持链式调用,如下是使用Pyecharts的地理图表功能,空间上直观显示数据可视化效果。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

wordcloud

绘制词云图,使用Python中的wordcloud库,首先,用pip install wordcloud安装该库,导入文本数据后,创建WordCloud对象,设置词云图的背景颜色、宽度和高度,使用generate()方法将文本传递给词云对象,生成词云图,最后,使用imshow()方法将词云图显示出来,并使用axis()方法隐藏坐标轴。

import matplotlib.pyplot as plt  
from wordcloud import WordCloud  
  
text = "This is some sample text for generating a word cloud."  
  
# 创建词云对象  
wordcloud = WordCloud(background_color='white', width=800, height=600).generate(text)  
  
# 显示词云图  
plt.figure(figsize=(9, 6))  
plt.imshow(wordcloud, interpolation='bilinear')  
plt.axis("off")  
plt.show()           
Python常用的库都有哪些?10个Python库用法总结,可直接使用

Faker

Faker库是一个很好的模拟生成数据的库,在满足数据安全的情况下,使用Faker库最大限度的满足我们数据分析的测试需求,可以模拟生成文本、数字、日期等字段。

导入Faker库可模拟生成数据,locale="zh_CN"用来显示中文,如下生成了一组包含姓名、手机号、身份证号、出生年月日、邮箱、地址、公司、职位这几个字段的数据。

#多行显示运行结果
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

from faker import Faker
faker=Faker(locale="zh_CN")#模拟生成数据

faker.name()
faker.phone_number()
faker.ssn()
faker.ssn()[6:14]
faker.email()
faker.address()
faker.company()
faker.job()           
Python常用的库都有哪些?10个Python库用法总结,可直接使用

PySimpleGUI

为了将代码的运行过程增加交互式操作,使用PySimpleGUI库开发一个图形界面,layout用于自定义窗口布局,window用于定义整体的窗口界面,while True: 循环运行,当满足特定的"事件"时,则返回具体的"值",从而实现人机交互功能。

import PySimpleGUI as sg

#自定义窗口布局,一共是两行,第一行用于查找需要合并Excel的文件目录,第二行点击开始合并按钮进行合并
layout = [[sg.Text("请选择Excel文件所在目录:"),sg.Input(size=(25, 1), enable_events=True, key="文件路径"),sg.FolderBrowse(button_text="浏览文件"),],
          [sg.Button('开始合并', enable_events=True, key="开始"),]
         ]

window = sg.Window('批量数据合并:By大话数据分析', layout)#定义窗口

while True:  
    event, values = window.read()
    if event in (None,):
        break  #关闭用户界面
    elif event == "开始":
        if values["文件路径"]:
            print(values["文件路径"])
            sg.popup('数据合并已完毕!')
        else:
            sg.popup('请先输入Excel文件所在的路径!')

window.close()           

如下将人机交互功能开发完毕,点击浏览文件,找到需要批量合并文件的文件夹目录,点击开始合并,即可输出结果,其中,values["文件路径"]输入的是需要合并Excel数据的文件路径,print打印出来的就是需要合并Excel数据的文件路径。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

pipenv

交互式的命令开发完毕,如何分享给别人使用?或者是别人的电脑上没有安装Python也能正常使用数据合并功能?这里给大家介绍Python程序打包,使用虚拟环境进行打包,在命令行输入如下命令下载pipenv包。

#使用虚拟环境压缩
pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple           

使用快捷键Win+R键,然后输入CMD,输入pipenv shell命令,进入虚拟环境,没有虚拟环境的话会自动建立一个。

#Win+R输入CMD,进入虚拟环境,没有虚拟环境的话会自动建立一个
pipenv shell           

由于Python打包会将电脑安装的Python包全部打包,这里我们在虚拟环境中只安装Python程序涉及的模块,这样会减少打包的体积,注意xlrd==1.2.0下载低版本的包,默认安装的是高版本的,安装高版本的包在程序使用中会报错。

#只安装Python程序涉及的模块
pip install pandas xlrd==1.2.0 id-validator PySimpleGUI pyinstaller -ihttps://pypi.tuna.tsinghua.edu.cn/simple           
Python常用的库都有哪些?10个Python库用法总结,可直接使用

将带有交互式命令的数据合并代码导出为.py文件,在命令行输入如下的打包命令,指定具体的路径即可打包,稍作几分钟即可打包完成。

#进行打包
pyinstaller -F -w C:\Desktop\combine.py           

稍等几分钟,在Python的工作目录下看到一个dist文件,如果不知道自己的Python工作目录,可使用os.getcwd()命令查看。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

该dist文件包含一个combine.exe程序,如下即为打包的程序。

Python常用的库都有哪些?10个Python库用法总结,可直接使用

pandasql

pandasql库可以在Python中写SQL,而且SQL语法在Python中完全支持,在Python中写SQL能够做到手写自如,导入pandasql库,SQL运行都需要借助pandasql库,我们使用的是sql.sqldf(""" *** """)命令,其中***就是你要写的SQL语句,写SQL不难,很容易入门,只要将SQL语句写入到括号内,即可实现数据查询。

import pandasql as sql           

导入pandasql库,将电影的累计票房分为'超低票房'、'低票房'、'中等票房'、'高票房'、'超高票房',使用case when进行分组,以end结尾,成功实现在pandas中使用case when查询,查询结果如下。

#对电影的累计票房使用CASE WHEN分组
sql.sqldf("""select 电影名称,电影导演,电影主演,累计票房,
case
when 累计票房 < 100000 then '超低票房'
when 累计票房 < 200000 then '低票房'
when 累计票房 < 300000 then '中等票房'
when 累计票房 < 400000 then '高票房'
else '超高票房'
end as '电影票房分组' from df
where 累计票房 is not null;""")           
Python常用的库都有哪些?10个Python库用法总结,可直接使用

什么?以上的这几个Python库还没学过瘾?如果你还想学习更多的Python库,却不知道该学习哪些库的时候,可以关注我,持续分享数据分析知识,带你零基础入门数据分析,掌握一项技能~

三年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路。