
在数据分析和机器学习领域,Pandas库是一个强大的工具。它拥有200多个函数和方法,使您能够整理和转换数据,但也因其复杂性而使您无法整理和转换数据。它是一把双刃剑。
因此,我们将探索Pandas最常见但最有用的函数和方法。了解这些将使您超越其他初学者学习Pandas。
我们将在本文的整个过程中使用一个伪数据集。
第一步是将pandas作为pd导入。这是导入pandas的最佳实践之一,因为pd是pandas的一个众所周知的缩写。
import pandas as pd
导入数据
在进行任何数据操作之前,您需要导入数据。 read_csv()函数是将数据集加载到Pandas DataFrame的入口点。通过指定文件路径,此函数使数据活跃起来,使您能够开始数据探索和分析。
要导入,请按照以下语法并输入您的数据集文件路径。
In[*] car_sales = pd.read_csv("./data/car-sales.csv") car_sales

了解数据的概况
想知道DataFrame的前几行或后几行? head()和tail()提供了一个快速的预览,帮助您评估数据集的结构和内容。在进行数据转换之前,这是对数据进行初步了解的理想方式。您可以在head(9)和tail(9)内输入参数,以指定您希望看到的项目数量。默认值为5个项目。
为了说明,看下面的示例代码输入和输出。
In[*] car_sales.head()

In[*] car_sales.tail()

全面了解您的数据
info()函数是您的数据侦探。它提供了DataFrame的全面摘要,展示了非空条目的数量、数据类型、内存使用情况等。这个快速概览可以指导您的数据清洗和准备工作。
In[*] car_sales.info()

揭示描述性统计信息
统计信息只需一个函数即可获得。 describe()函数提供了大量的描述性统计信息,包括均值、中位数、最小值、最大值和四分位数。了解数值数据的分布并发现潜在的异常值。请记住,describe()可能不会显示有意义的信息,它将始终取决于您的数据集。
In[*] car_sales.describe()

用分组的方式获取洞察
当按特定属性分组时,数据通常会讲述一个更丰富的故事。 groupby() 函数允许您根据特定列对数据进行分段,这使它成为聚合、汇总和可视化数据集内趋势的重要工具。
In[*] car_sales.groupby(["Make"]).mean()

赋予自定义转换的能力
有时,现成的函数是不够的。 apply() 函数赋予您自由将自定义函数应用于数据的能力。这种灵活性为适应特定需求进行定制数据转换打开了大门。这在操作和清理数据集时也非常重要。
在这个例子中,我们将应用 lambda 函数来移除价格中的 $、, 和 .00,并将其转换为 int 以执行有意义的功能。查看价格的 BEFORE 和 AFTER。
In[*] car_sales["Price"] = car_sales["Price"].apply(lambda x: x.replace(".00", '')).str.replace('[\$\,]', '').astype(int)
car_sales


处理缺失数据
处理缺失数据是一个常见的挑战。 fillna() 函数允许您替换丢失的值,而 dropna() 可以删除包含缺失数据的行或列。这些函数确保您的分析基于完整和准确的信息。
为了说明,让我们导入一个包含缺失数据的新数据集。
In[*] car_sales_missing = pd.read_csv("./data/car-sales-missing-data.csv")
car_sales_missing

我们可以清楚地看到一些 Odometer 的数据具有 NaN 的值,因此,让我们使用 fillna() 和 Odometer 的平均值来填充缺失值。
In[*] car_sales_missing["Odometer"] = car_sales_missing["Odometer"].fillna(car_sales_missing["Odometer"].mean())

现在,只有颜色、门数和价格存在 NaN,分别位于索引 6、7、8 和 9。我们将使用 dropna() 删除包含 NaN 的行和列。
In[*] car_sales_missing = car_sales_missing.dropna()
car_sales_missing

Pandas 不仅仅是一个库;它是进入有效数据操作和分析的门户。凭借这些重要的函数,您可以自信地应对现实世界的数据挑战和机器学习问题。无论您是数据科学家、分析师还是机器学习工程师,Pandas 都能让您将混乱的数据集转化为有价值的洞察。因此,深入研究、实验,并发挥 Pandas 在数据驱动的努力中无限的潜力。
保持好奇心,让你的分析思维保持活跃!
如果你想更多地了解Pandas,请考虑查看他们的文档!