在数据科学的日常工作中,科学家们需要学习多种算法,并为不同的商业问题找到机器学习(ML)的合适解决方案。他们还需要不断更新自己的编程语言知识,以便实现他们的解决方案。因此,本文旨在涵盖当前非常受欢迎的编程语言——Python的基础知识。
在Jupyter笔记本中,如果想要在同一个单元格中查看多个打印语句的输出,可以使用以下导入,这样可以让在同一个单元格中查看多个输出,避免了多次打印和显示语句。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
从基本的数据探索开始,检查数据的摘要,数据的外观,数据的大小等。接下来的重要步骤是检查每列的数据类型,并查看数据中存在多少空值。一旦知道了不同的数据类型,可能想要检查每个类别的数据。例如,以下代码可以让查看仅过滤为‘object’类型的数据框架:
df.select_dtypes(include=['object'])
为了获取所有需要进行编码技术处理的分类列名称,可以像下面这样写‘.columns’:
df.columns
理解数据特征是非常重要的,例如每个特征取值的不同范围及其计数:
df.describe()
当想要对原始数据框架进行一些转换时,会制作一个副本。制作数据框架的深拷贝可以防止在新数据框架中所做的更改反映在原始数据框架中。
已经看到了使用Python来更好地理解数据的基本技术。接下来,将学习如何处理日期时间特征。Pandas遵循时间戳限制,并且只有在一定范围内使用64位才能表示时间戳,如下所示。因此,它将根据传递给输入参数‘errors’的值返回输入日期,或者返回NaT。
如果将日期字符串作为输入传递以获取日期时间格式,并且如果传递了dayfirst=True作为输入,它将假定DD/MM/YY格式。如果传递的日期字符串中,对应月份的第二个数字大于12,并且dayfirst=True,它将自动推断月份不能大于12,因此第一个数字被标记为月份,第二个数字作为日。
from dateutil.parser import parse
parse("01/12/2023", dayfirst=True)
使用strptime可以将字符串日期转换为日期时间,为输入日期指定不同的格式。更多关于格式的信息可以在这里找到。相反,strftime用于将日期时间转换为字符串日期。
from datetime import datetime
datetime.strptime("01/12/2023", "%d/%m/%Y")
datetime.strftime(datetime.now(), "%Y-%m-%d")
以下展示了如何根据‘Age’特征对数据框架进行排序:
df.sort_values(by='Age')
数据框架可以通过一个或多个列进行索引,如下所示:
df.set_index('Age')
例如,已经通过过滤‘Age’索引(通过‘0’级别访问)大于30来过滤数据框架,如下所示:
df.loc[(df.index.get_level_values(0) > 30)]
以下是如何根据日期索引移动数据框架的示例:
df.shift(freq='D')
可以通过指定axis=0从行中删除空值,通过指定axis=1从列中删除空值。how='any'和'all'用于删除任何值为NaN的行/列与所有值都是NaN的行/列。
df.dropna(axis=0, how='any')
df.dropna(axis=1, how='all')
df.groupby('Gender').head(2)
import numpy as np
conditions = [df['Age'] < 18, df['Age'] >= 18]
choices = ['未成年人', '成年人']
df['Age_binned'] = np.select(conditions, choices, default='未知')