Python 数据分析三剑客之 Pandas(三):算术运算与缺失值的处理

💡 原文中文,约11900字,阅读约需29分钟。
📝

内容提要

本文介绍了Pandas库中的算术运算和缺失值处理。Pandas支持基本的算术运算,并能自动对齐不同索引的数据。处理缺失值的方法包括使用`fillna()`填充、`dropna()`删除缺失值,以及`isnull()`和`notnull()`判断缺失情况。这些功能帮助用户有效管理和分析数据集中的缺失值。

🔎

延伸解读

数据对齐:自动但需留意缺失值传播

Pandas 在算术运算时会自动对齐不同索引的对象,结果的索引是索引对的并集。不重叠的索引处会引入 NaN,且 NaN 会在运算中传播。例如两个 Series 相加,若索引不完全相同,则缺失索引对应的结果为 NaN。DataFrame 的对齐同时发生在行和列上,因此合并不同结构的数据时,需注意缺失值的产生。

DataFrame 与 Series 运算:广播规则与轴控制

DataFrame 与 Series 运算时,默认将 Series 的索引匹配到 DataFrame 的列,并沿行广播。若索引不匹配,则重新索引形成并集,缺失处为 NaN。若希望匹配行并在列上广播,需使用算术方法并指定 axis 参数(如 axis='index')。这提供了灵活性,但需明确轴方向以避免错误结果。

缺失值处理:填充与删除的权衡

处理缺失值常用 fillna() 填充和 dropna() 删除。fillna() 可指定固定值或使用前向/后向填充方法;dropna() 可删除包含缺失值的行或列,并通过 how 和 thresh 参数控制删除条件。选择填充还是删除取决于数据量和分析目标,填充可能引入偏差,删除可能丢失信息,需谨慎权衡。

算术运算中的 fill_value:避免缺失值传播

使用 add、sub 等算术方法时,可通过 fill_value 参数指定填充值,使未对齐的数据与填充值运算,而非产生 NaN。例如 Series 相加时指定 fill_value=-1,缺失位置会用 -1 参与运算。这有助于在数据不完整时仍能进行有效计算,但需注意填充值的选择可能影响结果合理性。

❓

Q&A

Pandas支持哪些基本的算术运算?

Pandas支持加、减、乘、除等基本算术运算。

如何处理Pandas中的缺失值?

可以使用`fillna()`填充缺失值,`dropna()`删除缺失值,`isnull()`和`notnull()`判断缺失情况。

Pandas如何自动对齐不同索引的数据?

Pandas在进行算术运算时会自动对齐不同索引的数据,缺失值会在运算中传播。

在Pandas中如何使用fill_value进行运算?

在使用算术方法时,可以通过`fill_value`指定填充值,未对齐的数据将与填充值进行运算。

Pandas的DataFrame与Series之间的运算是如何进行的?

DataFrame与Series之间的运算遵循广播规则,Series的索引会匹配到DataFrame的列,然后沿着行进行广播。

如何判断Pandas中的数据是否缺失?

可以使用`isnull()`判断缺失值,返回True或False,`notnull()`则相反。

🏷️

标签

➡️

继续阅读