Python数据分析入门教程_Pandas基础操作详解

Pandas是Python数据分析核心工具,提供DataFrame和Series等高效数据结构,支持创建、查看、筛选、处理缺失值与重复值、统计及分组计算等全流程操作。

想用Python做数据分析,Pandas是绕不开的核心工具。它提供了高效、灵活的数据结构(如DataFrame和Series),让读取、清洗、计算和可视化数据变得直观又简洁。掌握基础操作,是迈出数据分析第一步的关键。

创建和查看数据:从零开始构建DataFrame

最常用的方式是从字典或列表构造DataFrame,也可以直接读取外部文件。创建后建议立刻用head()info()describe()快速了解数据概况。

  • 用字典创建:`pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})`
  • 读取CSV:`df = pd.read_csv('data.csv')`(注意编码和分隔符参数)
  • 查看前5行:`df.head()`;查看数据类型与缺失值:`df.info()`

选取与筛选:精准定位你需要的行和列

Pandas提供多种索引方式,loc(按标签)、iloc(按位置)和布尔索引是最常用的三种。别混淆它们的使用场景——标签索引适合带明确列名/索引名的操作,位置索引适合按行列号取值。

10分钟内自己学会PHP

10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A

  • 选一列:`df['age']` 或 `df.age`(推荐前者,更稳定)
  • 选多列:`df[['name', 'age']]`(注意是双层中括号)
  • 条件筛选:`df[df['age'] > 28]`,支持 &(且)、|(或)、~(非)组合

处理缺失值和重复值:让数据更干净

真实数据常有空值(NaN)或重复记录。Pandas提供了简单但有力的方法来识别、填充或删除它们。关键是先检查再处理,避免误删有效信息。

  • 检查缺失:`df.isnull().sum()` 统计每列空值数量
  • 删除空行:`df.dropna()`;删除空列:`df.dropna(axis=1)`
  • 填充空值:`df['age'].fillna(df['age'].mean())` 或用固定值 `.fillna(0)`
  • 去重:`df.drop_duplicates()`(默认所有列都相同才去重,可指定 subset 参数)

简单统计与分组计算:快速获取洞察

不需要写循环,一行代码就能完成常见汇总任务。分组聚合(groupby)是探索性分析的利器,配合 agg 可同时计算多个指标。

  • 基础统计:`df['age'].mean()`、`df['age'].max()`、`df.describe()`
  • 按类别统计:`df.groupby('gender')['salary'].mean()`
  • 多指标聚合:`df.groupby('dept').agg({'salary': ['mean', 'std'], 'age': 'max'})`

相关推荐:

如何在Python中对NumPy数组进行转置与轴换位操作?

NumPy数组转置与轴换位本质相同但接口语义不同:.T仅适用于二维数组的简单转置,三维及以上会完全反转轴序;精确控制需用np.transpose()、np.swapaxes()或np.moveaxis()。 NumPy数组的转置和轴换位本质是同一类操作,但接口不同、语义侧重不同:用.T或np.tra...

如何在Python中通过计算欧氏距离实现基础的最近邻分类算法?

欧氏距离计算函数怎么写才不出错? 直接用math.sqrt和sum手动算平方和开方最稳妥,避免依赖未安装的库。常见错误是传入维度不一致的向量,比如训练样本是4维,测试样本只给了3个值——运行时会报IndexError或得到错误结果。 实操建议: 在计算前用len(vec1)==len(vec2)做校...

为什么Python中NumPy的运算速度比原生List快_详解向量化计算与C底层原理

NumPy运算更快的关键在于绕过Python解释器开销、使用连续内存与向量化指令,而非单纯“用了C”;小数组易受缓存未命中和初始化开销影响,需保持数据连续、类型单一、操作可并行。 NumPy运算比Python原生list快,不是因为“它用了C”,而是因为它绕过了Python解释器的运行时开销,并把计...

Python子类如何调用父类方法_详解super函数在多重继承中的应用

super()是Python多重继承中确保MRO正确执行的必需机制,所有参与类必须统一使用,否则链式调用会静默中断;其三种写法各适配不同上下文,而显式父类调用仅适用于绕过MRO的特定场景。 super()是Python中调用父类方法的推荐方式,尤其在多重继承场景下,它能避免重复调用、保证方法解析顺序...