在人工智能和机器学习项目中,数据处理是一个至关重要的环节。Pandas是Python中一个强大的数据处理库,它提供了高效、灵活的数据结构和数据分析工具。下面是一个使用Pandas库进行数据处理的例子,涉及数据清洗、特征工程和基本的统计分析。
在这个例子中,我们使用著名的泰坦尼克号乘客数据集。我们的目标是通过数据处理和特征工程,为机器学习模型预测乘客是否能生存提供清洗后的数据。
- import pandas as pd
- import numpy as np
- # 读取CSV文件到Pandas DataFrame
- df = pd.read_csv('titanic.csv')
3. 数据预览
- # 显示数据前几行
- print(df.head())
-
- # 查看数据的基本信息
- print(df.info())
-
- # 查看数据统计信息
- print(df.describe())
- # 查看每列的缺失值
- print(df.isnull().sum())
-
- # 填充缺失的年龄(使用中位数)
- df['Age'].fillna(df['Age'].median(), inplace=True)
-
- # 填充缺失的登船港口(使用最常见的值)
- df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
-
- # 舍弃包含大量缺失值的列(如客舱号)
- df.drop(columns=['Cabin'], inplace=True)
- # 使用Pandas的get_dummies方法进行独热编码
- df = pd.get_dummies(df, columns=['Sex', 'Embarked'], drop_first=True)
- # 创建家庭成员总数特征
- df['FamilySize'] = df['SibSp'] + df['Parch'] + 1
-
- # 创建是否独自一人旅行特征
- df['IsAlone'] = (df['FamilySize'] == 1).astype(int)
特征选择
- # 选择有用的特征进行建模
- features = ['Pclass', 'Age', 'Fare', 'FamilySize', 'IsAlone', 'Sex_male', 'Embarked_Q', 'Embarked_S']
- X = df[features]
- y = df['Survived']
- from sklearn.preprocessing import StandardScaler
-
- scaler = StandardScaler()
- X = scaler.fit_transform(X)
- # 计算各类乘客的生存率
- survival_rate = df.groupby('Pclass')['Survived'].mean()
- print(survival_rate)
-
- # 查看不同性别的生存率
- gender_survival_rate = df.groupby('Sex_male')['Survived'].mean()
- print(gender_survival_rate)
我们已经完成了数据清洗和特征工程,现在可以使用处理后的数据进行机器学习模型的训练。例如,使用逻辑回归模型:
- from sklearn.linear_model import LogisticRegression
- from sklearn.model_selection import train_test_split
- from sklearn.metrics import accuracy_score
-
- # 分割数据集为训练集和测试集
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
-
- # 初始化和训练逻辑回归模型
- model = LogisticRegression()
- model.fit(X_train, y_train)
-
- # 预测和评估模型
- y_pred = model.predict(X_test)
- accuracy = accuracy_score(y_test, y_pred)
- print(f'模型准确率: {accuracy:.2f}')
通过这个例子,我们展示了如何使用Pandas库进行数据加载、清洗、特征工程和简单的统计分析。这些步骤是进行机器学习建模的基础,能够帮助我们准备高质量的数据,为模型提供可靠的输入。