背景
Python的数据分析能力非常出色,因为它有广泛的功能库和工具,可为数据准备、清理、分析和呈现提供全面支持。Pandas和NumPy是Python用于数据科学的核心库,pandas提供数据框架,而NumPy则提供了广泛的数值计算操作。这两个库结合起来使用,可以为Python的数据分析和科学计算领域提供很好的基础。
接下来,我们将介绍一些重要的Python数据分析库和工具。
工具介绍
1. Matplotlib和Seaborn
Matplotlib是一个Python 2D绘图库,可以用于创建各种图形,如线图、散点图、多边形、条形图、直方图、图像等。Seaborn是基于Matplotlib构建的更高级别的库,简化了数据可视化操作并提供了完整的界面。Seaborn还有许多适用于数据分析和图形化的实用程序和数据集,包括聚集和统计式绘图,具有吸引力和可重复性的颜色调色板,以及多变量数据可視化功能。
示例代码:
import matplotlib.pyplot as plt import seaborn as sns # 绘制一行两列的坐标轴图表 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 5)) # 在第1个坐标轴中绘制一个直方图 sns.histplot(data, x='age', kde=True, ax=axes[0]) # 在第2个坐标轴中绘制一个散点图 sns.scatterplot(data, x='age', y='income', hue='gender', ax=axes[1]) # 设置标题和标签 axes[0].set(title='Histogram of Age', xlabel='Age', ylabel='Count') axes[1].set(title='Scatter Plot of Age vs. Income', xlabel='Age', ylabel='Income') plt.show()
这个代码片段中我们使用了Matplotlib和Seaborn库,绘制了一行两列的坐标轴图表。在第一个图表中,我们使用Seaborn的histplot()函数绘制了一个直方图,展示年龄的分布情况。在第二个图表中,我们使用Seaborn的scatterplot()函数绘制了一个散点图,展示年龄与收入之间的关系。我们使用不同的颜色来表示不同的性别。
2. Pandas
Pandas是Python用于数据操作和数据分析的重要库,可以处理各种类型的数据,如表格数据、时间序列、多维数组等。Pandas的数据框架十分强大,允许用户使用数据运算、数据筛选、数据过滤等等操作,自如地处理数据。
示例代码用于数据操作:
import pandas as pd # 读取CSV文件数据 data = pd.read_csv('data.csv') # 查看前五行数据 print(data.head()) # 修改数据值 data.loc[data['gender'] == 'Male', 'gender'] = 1 data.loc[data['gender'] == 'Female', 'gender'] = 0 # 列出所有不同的职业 print(data['occupation'].unique()) # 统计每个职业的人数 print(data['occupation'].value_counts()) # 创建一个新的DataFrame作为数据片段 subset = data[['age', 'income', 'gender']] # 创建新的列,比较于平均收入高或低 subset['income_category'] = pd.cut(subset['income'], bins=[0, 50000, 100000, 150000], labels=['Low', 'Medium', 'High']) # 在Pandas数据框架上绘制箱线图 subset.boxplot(column=['age'], by=['income_category', 'gender'])
这个代码片段展示了Pandas库进行数据操作的一些示例。当读取CSV文件数据时,我们可以使用Pandas读取方法轻松将其读入数据框架中。我们还可以对数据进行修改,例如将性别男和女转换为数字1和0。我们可以通过查找所有不同的职业以及计算每个职业的人数,了解数据集的结构。在这个代码片段中,我们也可以将数据的子集创建为一个新的数据框架。我们可以在数据框架上游泳使用Pandas内置的cut()函数,将收入分为三个类别,并创建新数据资金子集。最后,我们使用Pandas数据框架上的盒状图功能,可视化收入水平、性别和年龄之间的关系。
3. Scikit-learn
Scikit-learn是一个Python用于机器学习、数据挖掘和数据分析的库,提供了各种分类、回归算法、聚类分析等等。它还包括裁剪、特征选择和模型验证等有用工具,以及用于监控模型性能的函数和图形界面。
一些示例代码用于机器学习:
from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 创建机器学习模型 X = data[['age', 'gender']] y = data['income'] # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 训练随机森林回归器 model = RandomForestRegressor(n_estimators=100, random_state=42) model.fit(X_train, y_train) # 预测测试集中的收入 y_pred = model.predict(X_test) # 输出均方误差 mse = mean_squared_error(y_test, y_pred) print('Mean squared error: {:.2f}'.format(mse))
这个代码片段展示了使用scikit-learn库进行机器学习的一些示例。我们先从数据集中选择年龄和性别两个特征,以收入作为标签。然后,我们使用train_test_split()函数将数据集划分为训练集和测试集,以训练和评估模型。在这个代码段中,我们使用了随机森林回归器来预测收入。最后,我们计算测试集上的均方误差,并将其输出。