当前位置: 首页 > ops >正文

Python中库的安装使用过程详解

        很多时候,我们学习是无从下手的,所以要找到一个思路,循序渐进地学习。就比如,Python中有很多库,如何更好的学习其中一个库,查看这个库的基本情况,就要从Python查看版本开始,了解本机是否安装了想要的库,没有安装就了解安装命令并安装,再了解库中包含哪些函数、参数等、查看库有哪些特性,查看里面主要函数有哪些特性,以及如何使用。

        基于这样的学习思路,我们以pandas库为例,讲解整个过程。

        先确保已经安装了Python,CMD中查看:

python --version

一、Python 库的基本情况查看方法

(一)查看库是否安装及版本信息

1.使用命令行工具检查

        在命令行中,可以通过pip list命令查看所有已安装的 Python 库及其版本。例如,执行以下命令:

pip list | grep pandas

如果是新安装的Python,除了pip,是什么库都没有安装的。

如果已安装 pandas,会显示类似pandas 1.5.3的输出,其中 1.5.3 是版本号。

若要更精确地查看特定库的信息,可以使用:

pip show pandas

这将显示包括版本、安装位置、依赖项等详细信息。具体安装过程在后面。

2.在 Python 环境中检查

在 Python 交互式环境或脚本中,可以通过导入库并查看其__version__属性来获取版本信息

import pandas as pd
print(pd.__version__)  # 输出当前安装的pandas版本

如果尝试导入一个未安装的库,Python 会抛出ModuleNotFoundError异常。例如:

try:import pandas as pdprint("pandas已安装,版本为", pd.__version__)
except ModuleNotFoundError:print("pandas未安装,请使用以下命令安装:\npip install pandas")

(二)安装库的方法

1.使用 pip 安装

如果检查发现库未安装,可以使用 pip 进行安装。对于 pandas,执行以下命令:

pip install pandas

当然,建议使用国内的镜像安装,否则安装过程非常的慢,当前使用清华大学镜像。

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

若需要指定版本,可以使用(镜像地址加后面就可以了):

pip install pandas==1.5.3  # 安装指定版本的pandas

如果需要安装最新开发版本,可以从源代码安装:

pip install git+https://github.com/pandas-dev/pandas.git

当前安装的是最新版本,安装pandas过程中,会附带安装很多需要的依赖包,安装后的效果:

使用 conda 安装
如果使用 Anaconda 或 Miniconda 环境,可以使用 conda 命令安装:

conda install pandas

conda 会自动处理依赖关系,并确保与环境中的其他包兼容。

2.从源代码安装

从 GitHub 等源代码仓库获取库的源码后,可以通过以下方式安装:

python setup.py install

这种方式通常用于开发或需要自定义编译选项的情况。

安装成功之后,再通过pip list查看是否已经安装成功,并了解相应的依赖库:

使用pip show pandas查看库的详细信息:

        从上面的信息中可以了解到,库的名称、版本号、概述、库的首页、作者、版权协议、简要介绍、安装地址、依赖库等信息。

二、深入了解 pandas 库

(一)pandas 库概述

1.库的定位和用途

        pandas 是 Python 中用于数据处理和分析的核心库,提供了高效、灵活的数据结构(如 DataFrame 和 Series),使数据清洗、分析、可视化等任务变得更加简单。它建立在 NumPy 之上,与其他科学计算库(如 Matplotlib、SciPy)无缝集成。

2.主要特性

  • 快速高效的 DataFrame 对象,支持异构数据
  • 集成时间序列功能
  • 提供灵活的数据对齐和缺失数据处理机制
  • 支持从多种数据源(CSV、Excel、SQL 数据库等)读取和写入数据
  • 强大的分组和聚合功能
  • 高性能的合并和连接操作
  • 支持多种数据格式的 IO 操作

3.了解pandas的变量、方法等信息

        可以使用Python的内置函数了解pandas的变量、方法等信息,这个需要在Python的解释器中执行,所以需要先进入Python执行环境。CMD中执行以下命令:

python
dir('pandas')

        dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

        可知,pandas库中,变量、方法和定义的类型包括:

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

这些方法,可以通过以下命令的方式调用:

import pandas
pandas.__doc__  #pandas的文档字符串(__doc__)提供了关于pandas库的基本信息和功能描述
pandas.__file__  #__file__属性用于获取当前模块的路径

pandas的文档字符串主要包括以下内容:

  • 基本介绍‌:简要介绍pandas的功能和用途,例如提供高效的数据操作和数据帧处理工具。
  • 安装方法‌:提供安装pandas的命令和依赖关系。
  • 用户指南‌:详细介绍pandas的主要概念、数据结构和使用方法。
  • API参考‌:详细描述pandas的API,包括各个函数和方法的用法和参数。

4.查看函数或模块用途

        help() 函数用于查看函数或模块用途的详细说明。

        按“回车”会看到更多的信息。

(二)pandas 的数据结构

1.Series 对象

        Series 是一维带标签的数组,可容纳任意数据类型(整数、字符串、浮点数、Python 对象等)。它由索引和值两部分组成。

        创建 Series 的基本语法:

import pandas as pd
s = pd.Series(data, index=index)

        其中,data可以是 Python 字典、列表、标量值等,index是可选的标签数组。

示例:

# 从列表创建Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

输出:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

        Series 支持多种操作,如索引、切片、数学运算等。例如:

# 访问Series中的元素
print(s[0])  # 输出1.0
print(s[1:3])  # 输出索引1到2的元素

2.DataFrame 对象

        DataFrame 是二维标记数据结构,具有可能不同类型的列。它类似于电子表格或 SQL 表,或 Series 对象的字典。创建 DataFrame 的基本语法:

df = pd.DataFrame(data, index=index, columns=columns)

        其中,data可以是字典、列表、Series、NumPy 数组等,index是行标签,columns是列标签。

示例:

# 从字典创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 32, 18, 47],'City': ['New York', 'Paris', 'London', 'Tokyo']
}
df = pd.DataFrame(data)
print(df)

输出:

     Name  Age      City
0    Alice   25  New York
1      Bob   32     Paris
2  Charlie   18    London
3    David   47     Tokyo

        DataFrame 提供了丰富的方法来操作数据,如选择列、过滤行、计算统计量等。例如:

# 选择Age列
print(df['Age'])# 过滤年龄大于30的行
print(df[df['Age'] > 30])

三、pandas 主要功能及使用示例

(一)数据读取与写入

1.读取 CSV 文件

        CSV(逗号分隔值)是一种常见的文本文件格式,pandas 提供了read_csv()函数来读取 CSV 文件。

示例:

# 读取CSV文件
df = pd.read_csv('data.csv')
print(df.head())  # 显示数据集行数

read_csv()函数有许多参数可用于处理不同格式的 CSV 文件,例如:

# 指定分隔符、列名、缺失值表示等
df = pd.read_csv('data.csv', sep=';', header=None, na_values=['nan', '?'])

        注意:在正常使用过程中,这里的文件data.csv,最好使用的是绝对路径

2.读取 Excel 文件

        使用read_excel()函数可以读取 Excel 文件:

# 读取Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

3.写入数据到文件

        使用to_csv()to_excel()方法可以将 DataFrame 保存到文件:

# 保存为CSV文件
df.to_csv('output.csv', index=False)# 保存为Excel文件
df.to_excel('output.xlsx', sheet_name='Data', index=False)

(二)数据清洗与预处理

1.处理缺失值

        缺失值在数据分析中很常见,pandas 提供了多种方法来处理缺失值。

示例:

# 检查缺失值
print(df.isnull().sum())  # 统计每列的缺失值数量# 删除包含缺失值的行
df_clean = df.dropna()# 填充缺失值
df_filled = df.fillna(0)  # 用0填充缺失值
df_filled = df.fillna(df.mean())  # 用均值填充缺失值

2.数据类型转换

        有时需要将列转换为不同的数据类型:

# 将Age列转换为整数类型
df['Age'] = df['Age'].astype(int)# 将Date列转换为日期时间类型
df['Date'] = pd.to_datetime(df['Date'])

3.数据去重

        使用drop_duplicates()方法去除重复行:

# 去除重复行
df_unique = df.drop_duplicates()

(三)数据选择与过滤

1.选择列

        可以通过列名选择单列或多列:

# 选择单列
name_column = df['Name']# 选择多列
subset = df[['Name', 'Age']]

2.选择行

        可以使用索引位置或条件过滤选择行:

# 通过索引位置选择行
first_row = df.iloc[0]# 通过条件过滤选择行
adults = df[df['Age'] >= 18]

3.同时选择行和列

        使用lociloc方法可以同时选择行和列:

# 使用loc基于标签选择
subset = df.loc[0:2, ['Name', 'City']]# 使用iloc基于位置选择
subset = df.iloc[0:3, 0:2]  # 选择前3行和前2列

(四)数据分组与聚合

1.分组操作

        使用groupby()方法可以按一个或多个列对数据进行分组

# 按City列分组
grouped = df.groupby('City')# 计算每个城市的平均年龄
avg_age_by_city = grouped['Age'].mean()
print(avg_age_by_city)

2.聚合函数

        pandas 提供了多种聚合函数,如sum()mean()count()min()max()等:

# 计算多个统计量
stats = grouped['Age'].agg(['count', 'mean', 'std'])
print(stats)

3.自定义聚合函数

        除了内置的聚合函数,还可以使用自定义函数:

# 自定义聚合函数
def custom_range(x):return x.max() - x.min()range_by_city = grouped['Age'].agg(custom_range)
print(range_by_city)

(五)数据合并与连接

1.合并 DataFrame

        使用merge()函数可以根据一个或多个键将不同的 DataFrame 连接起来

# 创建两个DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],'value1': [1, 2, 3, 4]
})df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],'value2': [5, 6, 7, 8]
})# 内连接
merged_inner = pd.merge(df1, df2, on='key', how='inner')
print(merged_inner)# 左连接
merged_left = pd.merge(df1, df2, on='key', how='left')
print(merged_left)

2.连接 DataFrame

        使用concat()函数可以沿着轴(行或列)连接多个 DataFrame

# 垂直连接
concatenated = pd.concat([df1, df2], axis=0)
print(concatenated)# 水平连接
concatenated = pd.concat([df1, df2], axis=1)
print(concatenated)

(六)数据排序与排名

1.排序

        使用sort_values()方法可以按一个或多个列对 DataFrame 进行排序

# 按Age列升序排序
sorted_df = df.sort_values('Age')# 按Age列降序排序,然后按Name列升序排序
sorted_df = df.sort_values(['Age', 'Name'], ascending=[False, True])

2.排名

        使用rank()方法可以为数据分配排名

# 为Age列分配排名
df['Age_rank'] = df['Age'].rank(ascending=False)
print(df)

(七)数据可视化

        虽然 pandas 本身的可视化功能相对基础,但它提供了与 Matplotlib 集成的接口,方便快速生成图表。所以需要先安装Matplotlib库。

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

1.绘制折线图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt  # 导入pyplot模块# 创建示例数据
dates = pd.date_range('20230101', periods=10)
df = pd.DataFrame(np.random.randn(10, 4), index=dates, columns=list('ABCD'))# 绘制折线图
df.plot()# 显示图形
plt.show()

图形效果如下:

2.绘制柱状图

# 创建示例数据
data = {'Category': ['A', 'B', 'C', 'D'], 'Value': [25, 30, 20, 35]}
df = pd.DataFrame(data)# 绘制柱状图
df.plot(kind='bar', x='Category', y='Value')# 显示图形
plt.show()

图形效果如下:

3.绘制散点图

# 创建示例数据
df = pd.DataFrame(np.random.randn(100, 2), columns=['x', 'y'])# 绘制散点图
df.plot(kind='scatter', x='x', y='y')# 显示图形
plt.show()

       图形效果如下:

四、高级 pandas 功能

(一)时间序列处理

1.日期范围生成

        使用date_range()函数可以生成日期序列:

# 生成日期范围
dates = pd.date_range('20230101', periods=30, freq='D')
print(dates)

2.时间序列索引

        可以使用日期时间作为 DataFrame 的索引:

# 创建带时间序列索引的DataFrame
df = pd.DataFrame(np.random.randn(30, 4), index=dates, columns=list('ABCD'))
print(df.head())

3.重采样

        使用resample()方法可以对时间序列进行重采样:

# 将日数据重采样为周数据
weekly_mean = df.resample('W').mean()
print(weekly_mean)

(二)多级索引

1.创建多级索引

        可以为 DataFrame 创建多级索引:

# 创建多级索引
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)],names=['category', 'number']
)# 创建带多级索引的DataFrame
df = pd.DataFrame(np.random.randn(4, 2), index=index, columns=['value1', 'value2'])
print(df)

2.多级索引选择

        可以通过多级索引选择数据:

# 选择category为A的数据
print(df.loc['A'])# 选择category为A且number为1的数据
print(df.loc[('A', 1)])

(三)函数应用

1.apply () 方法

        使用apply()方法可以将函数应用到 DataFrame 的行或列:

# 定义一个函数
def double(x):return x * 2# 将函数应用到每一列
df_doubled = df.apply(double)# 将函数应用到每一行
df_doubled = df.apply(double, axis=1)

2.applymap () 方法

        使用applymap()方法可以将函数应用到 DataFrame 的每个元素:

# 将函数应用到每个元素
df_squared = df.applymap(lambda x: x**2)

五、pandas 最佳实践

(一)性能优化

1.使用向量化操作

        pandas 的向量化操作比纯 Python 循环快得多,应尽量避免使用显式循环:

# 推荐:向量化操作
df['new_column'] = df['column1'] + df['column2']# 不推荐:使用循环
new_values = []
for i in range(len(df)):new_values.append(df.iloc[i]['column1'] + df.iloc[i]['column2'])
df['new_column'] = new_values

2.选择合适的数据类型

        使用更高效的数据类型可以减少内存使用并提高性能:

# 使用category类型存储分类数据
df['category_column'] = df['category_column'].astype('category')

3.使用适当的数据结构

        对于大型数据集,考虑使用pd.SparseDataFramepd.HDFStore等高效数据结构。

(二)代码风格与可读性

1.链式方法调用

        pandas 支持链式方法调用,可以使代码更简洁易读:

# 链式方法调用
result = (df.query('Age > 30').groupby('City').mean().sort_values('Age', ascending=False).head(10))

2.使用有意义的变量名

        使用描述性的变量名可以提高代码的可读性:

# 不推荐
x = df[df['Age'] > 30]# 推荐
adults = df[df['Age'] > 30]

(三)错误处理与调试

1.处理异常

在读取文件或进行复杂操作时,应包含适当的异常处理:

try:df = pd.read_csv('data.csv')
except FileNotFoundError:print("文件不存在,请检查路径!")
except Exception as e:print(f"发生错误: {e}")

2.调试技巧

        使用head()tail()describe()等方法快速查看数据的基本情况:

# 查看数据集行数
print(df.head())# 查看数据基本统计信息
print(df.describe())

六、pandas 资源与进一步学习

(一)官方文档

        pandas 的官方文档是学习和参考的最佳资源,包含详细的 API 文档、教程和示例:

  • pandas 官方文档:pandas documentation — pandas 2.2.3 documentation

(二)推荐书籍

  1. 《Python for Data Analysis》(Wes McKinney 著)
    这本书是 pandas 作者撰写的权威指南,详细介绍了 pandas 及相关工具的使用。

  2. 《Python 数据分析实战》(第二版)
    提供了大量使用 pandas 进行数据分析的实际案例和技巧。

(三)在线教程与社区

  1. Kaggle
    Kaggle 是数据科学竞赛平台,上面有许多使用 pandas 的数据分析和机器学习教程。

  2. Stack Overflow
    遇到问题时,可以在 Stack Overflow 上搜索解决方案,pandas 相关的问题有很多高质量的回答。

  3. 各种博客和教程网站
    如 Towards Data Science、Medium 等平台上有许多关于 pandas 的实用教程和技巧分享。

        通过以上内容,你应该对如何查看 Python 库的基本情况以及 pandas 库有了全面的了解。pandas是一个功能强大且灵活的库,掌握它对于数据科学和分析工作至关重要。通过不断实践和学习,你将能够熟练运用 pandas 处理各种复杂的数据任务。

http://www.xdnf.cn/news/11992.html

相关文章:

  • Spring Boot微服务架构(十一):独立部署是否抛弃了架构优势?
  • 嵌入式Linux之RK3568
  • 本地日记本,用于记录日常。
  • OpenHarmony 5.0横竖屏界面适配
  • SEM: Enhancing Spatial Understanding forRobust Robot Manipulation
  • QMap清空手动分配的内存
  • 在WordPress上添加隐私政策页面
  • 深入解析 C++ 多态:从原理到实战
  • 一键试衣,6G显存可跑
  • 6.promise在哪个线程执行?(2)
  • Three.js进阶之音频处理与展示
  • C++.vector 容器(1.5w字)
  • 虚幻网络执行宏-核心作用是根据网络环境中的不同执行环境
  • 抗辐射·耐温差·抑振动:解析猎板PCB真空塞孔在航天电子中的核心价值​
  • 图像局部精度超限情况
  • GDB的调试
  • HTB 靶机 SolarLab Write-up(Medium)
  • Nginx 安全设置问题
  • 计算机I/O系统:数据交互的核心桥梁
  • 论文导读 | 子图匹配最新进展
  • Office安装
  • C#编程过程中变量用中文有啥影响?
  • 【Python零基础入门系列】第7篇:Python中的错误与异常处理
  • 每日八股文6.4
  • C++ 变量二
  • geoai库的训练数据查看与处理
  • 核心机制:拥塞控制
  • 使用pgAdmin导入sql文件
  • 《波段操盘实战技法》速读笔记
  • 数据库-数据查询-in和Not in