别找了,这是 Pandas 最详细教程了

本文全面介绍了Python数据处理库Pandas的使用技巧,从基础操作如数据读取、写入、检查和更新,到进阶功能如统计计算、绘图、数据关联和分组,帮助读者快速提升数据科学效率。

来源:机器之心

Python 是开源的,它很棒,但是也无法避免开源的一些固有问题:很多包都在做(或者在尝试做)同样的事情。如果你是 Python 新手,那么你很难知道某个特定任务的最佳包是哪个,你需要有经验的人告诉你。有一个用于数据科学的包绝对是必需的,它就是 pandas。

pandas 最有趣的地方在于里面隐藏了很多包。它是一个核心包,里面有很多其他包的功能。这点很棒,因为你只需要使用 pandas 就可以完成工作。

pandas 相当于 python 中 excel:它使用表(也就是 dataframe),能在数据上做各种变换,但还有其他很多功能。

如果你早已熟知 python 的使用,可以直接跳到第三段。

让我们开始吧:

import pandas as pd

别问为什么是「pd」而不是「p」,就是这样。用就行了:)

pandas 最基本的功能

读取数据

data = pd.read_csv( my_file.csv )
data = pd.read_csv( my_file.csv , sep= ; , encoding= latin-1 , nrows=1000, skiprows=[2,5])

sep 代表的是分隔符。如果你在使用法语数据,excel 中 csv 分隔符是「;」,因此你需要显式地指定它。编码设置为 latin-1 来读取法语字符。nrows=1000 表示读取前 1000 行数据。skiprows=[2,5] 表示你在读取文件的时候会移除第 2 行和第 5 行。

  • 最常用的功能:read_csv, read_excel

  • 其他一些很棒的功能:read_clipboard, read_sql

写数据

data.to_csv( my_new_file.csv , index=None)

index=None 表示将会以数据本来的样子写入。如果没有写 index=None,你会多出一个第一列,内容是 1,2,3,...,一直到最后一行。

我通常不会去使用其他的函数,像.to_excel, .to_json, .to_pickle 等等,因为.to_csv 就能很好地完成工作,并且 csv 是最常用的表格保存方式。

检查数据

Gives (#rows, #columns)

给出行数和列数

data.describe()

计算基本的统计数据

查看数据

data.head(3)

打印出数据的前 3 行。与之类似,.tail() 对应的是数据的最后一行。

data.loc[8]

打印出第八行

data.loc[8,  column_1 ]

打印第八行名为「column_1」的列

data.loc[range(4,6)]

第四到第六行(左闭右开)的数据子集

pandas 的基本函数

逻辑运算

data[data[ column_1 ]== french ]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990)]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990) & ~(data[ city ]== London )]

通过逻辑运算来取数据子集。要使用 & (AND)、 ~ (NOT) 和 | (OR),必须在逻辑运算前后加上「and」。

data[data[ column_1 ].isin([ french ,  english ])]

除了可以在同一列使用多个 OR,你还可以使用.isin() 函数。

基本绘图

matplotlib 包使得这项功能成为可能。正如我们在介绍中所说,它可以直接在 pandas 中使用。

data[ column_numerical ].plot()

().plot() 输出的示例

data[ column_numerical ].hist()

画出数据分布(直方图)

.hist() 输出的示例

%matplotlib inline

如果你在使用 Jupyter,不要忘记在画图之前加上以上代码。

更新数据

data.loc[8,  column_1 ] =  english

将第八行名为 column_1 的列替换为「english」

data.loc[data[ column_1 ]== french ,  column_1 ] =  French



在一行代码中改变多列的值

好了,现在你可以做一些在 excel 中可以轻松访问的事情了。下面让我们深入研究 excel 中无法实现的一些令人惊奇的操作吧。

中级函数

统计出现的次数

data[ column_1 ].value_counts()

.value_counts() 函数输出示例

在所有的行、列或者全数据上进行操作

data[ column_1 ].map(len)

len() 函数被应用在了「column_1」列中的每一个元素上

.map() 运算给一列中的每一个元素应用一个函数

data[ column_1 ].map(len).map(lambda x: x/100).plot()

pandas 的一个很好的功能就是链式方法(https://tomaugspurger.github.io/method-chaining)。它可以帮助你在一行中更加简单、高效地执行多个操作(.map() 和.plot())。

data.apply(sum)

.apply() 会给一个列应用一个函数。

.applymap() 会给表 (DataFrame) 中的所有单元应用一个函数。

tqdm, 唯一的

在处理大规模数据集时,pandas 会花费一些时间来进行.map()、.apply()、.applymap() 等操作。tqdm 是一个可以用来帮助预测这些操作的执行何时完成的包(是的,我说谎了,我之前说我们只会使用到 pandas)。

from tqdm import tqdm_notebook
tqdm_notebook().pandas()

用 pandas 设置 tqdm

data[ column_1 ].progress_map(lambda x: x.count( e ))

用 .progress_map() 代替.map()、.apply() 和.applymap() 也是类似的。

在 Jupyter 中使用 tqdm 和 pandas 得到的进度条

相关性和散射矩阵

data.corr()
data.corr().applymap(lambda x: int(x*100)/100)

.corr() 会给出相关性矩阵

pd.plotting.scatter_matrix(data, figsize=(12,8))

散点矩阵的例子。它在同一幅图中画出了两列的所有组合。

pandas 中的高级操作

The SQL 关联

在 pandas 中实现关联是非常非常简单的

data.merge(other_data, on=[ column_1 ,  column_2 ,  column_3 ])

关联三列只需要一行代码

分组

一开始并不是那么简单,你首先需要掌握语法,然后你会发现你一直在使用这个功能。

data.groupby( column_1 )[ column_2 ].apply(sum).reset_index()

按一个列分组,选择另一个列来执行一个函数。.reset_index() 会将数据重构成一个表。

正如前面解释过的,为了优化代码,在一行中将你的函数连接起来。

行迭代

dictionary = {}

for i,row in data.iterrows():
 dictionary[row[ column_1 ]] = row[ column_2 ]

.iterrows() 使用两个变量一起循环:行索引和行的数据 (上面的 i 和 row)

总而言之,pandas 是 python 成为出色的编程语言的原因之一

我本可以展示更多有趣的 pandas 功能,但是已经写出来的这些足以让人理解为何数据科学家离不开 pandas。总结一下,pandas 有以下优点:

  • 易用,将所有复杂、抽象的计算都隐藏在背后了;

  • 直观;

  • 快速,即使不是最快的也是非常快的。

它有助于数据科学家快速读取和理解数据,提高其工作效率

原文链接:https://towardsdatascience.com/be-a-more-efficient-data-scientist-today-master-pandas-with-this-guide-ea362d27386

------end------



<think>嗯,用户明确想要2025年新的零基础Python文字教程,且特别强调要"文字版"。结合站内引用来看,用户可能是个完全的新手,需要避开视频教程的碎片化问题,想要系统性的自学材料。 从之前的对话发现用户对技术细节接受度较高(比如能理解爬虫代码片段),但这次需求更聚焦基础入门。引用[1]和[3]特别关键:[1]提到Python 3.12是2025年新手首选版本,[3]的安装教程永久免费且含详细排错方案——这两点必须纳入教程开头,因为环境搭建是新手的第一个门槛。 用户隐含需求可能是"避坑":2025年的教程必须包含新工具链(比如PyCharm优化配置)和生态变化(如旧版pip命令可能弃用)。引用[3]的环境变量配置和卡顿解决方案要拆解成具体操作步骤,毕竟Mac/Win用户都会遇到这类问题。 教程结构需严格遵循认知规律:安装→基础语法→第一个程序→调试。重点突出: 1. 安装部分直接引用[3]的PATH配置示例,避免"Python not found"报错 2. 第一个程序必须包含$$print(f"Hello, {input('Your name: ')}!")$$这种交互式案例(比单纯print更激发兴趣) 3. 调试环节要教用户看报错类型(NameError和IndentationError常见) 专业层面注意三点: - 变量命名示例用中文拼音(如shuzi=42),降低母语干扰 - 函数定义强调冒号和缩进(新手高频错误点) - 文件操作使用with open()而非旧式open()...close() 后按用户历史偏好补充项目建议:引用[4]的源码获取权益可作为延伸福利,但当前阶段只需推荐桌面整理脚本这种微型项目(呼应引用[1]的"神奇小事")。 </think>以下是为您整理的**2025年零基础学习Python文字教程**,结合新工具链与实践方法论,内容严格遵循引用资料并标注来源: --- ### **第一章 环境搭建(2025年新版)** #### 1.1 安装Python 3.12(引用[1][3]) ```bash # 验证安装(终端执行) $ python --version Python 3.12.0 # 2025年稳定版本[^1][^3] ``` - **关键步骤**: - 官网下载安装包([python.org](https://python.org)) - **环境变量配置**(Windows): ```PATH=C:\Python312;C:\Python312\Scripts```[^3] - **Mac/Linux验证**:```$ which python3``` #### 1.2 安装PyCharm(2025优化版) ```markdown 1. 下载社区版(永久免费[^3]) 2. **解决卡顿问题**(引用[3]): - 修改`pycharm.vmoptions`: ```ini -Xms2048m # 小内存 -Xmx4096m # 大内存 ``` - 禁用非常用插件(如CSV/Database)[^3] ``` --- ### **第二章 基础语法速通** #### 2.1 核心概念(附代码模板) | 概念 | 示例代码 | 说明 | |---------------|----------------------------------|--------------------------| | 变量 | `name = "小明"` | 动态类型[^1] | | 条件语句 | ```python if len(name) > 2: print("名字有效") ``` | 缩进控制逻辑块 | | 循环 | ```python for i in range(3): print(f"第${i+1}$次") ``` | f-string格式化[^1] | #### 2.2 函数与数据结构 ```python # 函数定义(引用[1]) def 计算平方(x): return x**2 # $$x^2$$ 数学表达式 # 列表操作 数字列表 = [1, 2, 3] 数字列表.append(4) # 添加元素 ``` --- ### **第三章 实战项目开发** #### 3.1 文件整理工具(桌面自动化) ```python import os import shutil def 整理文件(目标路径): for 文件 in os.listdir(目标路径): if 文件.endswith(".pdf"): shutil.move(文件, "PDF文件夹/") # 引用[1]案例扩展 ``` > **项目意义**:实现引用[1]提到的“几行代码整理桌面”[^1] #### 3.2 数据采集脚本(2025反爬策略) ```python import requests from fake_useragent import UserAgent headers = {"User-Agent": UserAgent().random} # 动态UA response = requests.get(url, headers=headers) if response.status_code == 200: with open("data.html", "w", encoding="utf-8") as f: f.write(response.text) # 引用[4]反爬方案 ``` --- ### **第四章 持续学习路径** #### 4.1 推荐资源(2025年更新) | 类型 | 资源名称 | 特点 | |------------|-----------------------------------|--------------------------| | **文字教程** | 《Python Crash Course 2025》 | 每月更新案例[^3] | | **实战库** | requests + pandas + matplotlib | 数据处理三件套 | | **社区** | 优快云-Python板块 | 免费答疑+源码获取[^4] | #### 4.2 调试技巧(PyCharm专属) ```markdown 1. **插件安装失败** → 手动下载ZIP导入[^3] 2. **报错"Python not found"** → 检查PATH变量[^3] 3. **缓存清理**:`File > Invalidate Caches` ``` --- **下一步行动**: 1. 完成Python 3.12安装并验证版本 2. 在PyCharm中复现第二章代码片段 3. 扩展第三章项目(如增加文件类型分类逻辑) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值