暂无公告...若无公告建议关闭公告显示

用于探索性数据分析的 20 个代码片段

探索性数据分析 (EDA) 是任何数据科学项目中的关键步骤。它涉及在深入进行更复杂的分析之前了解数据内的结构、模式和关系。

今天,我们将探讨使用 Python 进行 EDA 的 20 个代码片段。

1.加载数据

import pandas as pd 

# 从 CSV 文件加载数据
df = pd.read_csv('data.csv') 

# 显示前几行
print(df.head())

2.基本统计

# 显示摘要统计信息
print(df.describe()) 

# 计算列中的唯一值
print(df['column'].value_counts())

3.数据类型

# 显示列的数据类型
print(df.dtypes) 

# 转换数据类型
df['numeric_column'] = pd.to_numeric(df['numeric_column'])

4.缺失值

# 检查是否有缺失值
print(df.isnull().sum()) 

# 删除有缺失值的行
df.dropna(inplace=True)

5.数据可视化

import matplotlib.pyplot as plt 

# 直方图
plt.hist(df['numeric_column'], bins=10) 
plt.xlabel('Numeric Column') 
plt.ylabel('Frequency') 
plt.show() 

# 散点图
plt. scatter(df['feature1'], df['feature2']) 
plt.xlabel('特征 1') 
plt.ylabel('特征 2') 
plt.show()

6.相关性分析

# 计算相关矩阵
correlation_matrix = df.corr() 

# 可视化相关矩阵
import seaborn as sns 
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm') 
plt.show()

7.异常值检测

# 使用 z 分数检测离群值
from scipy import stats 
z_scores = stats.zscore(df['numeric_column']) 
outliers = df[(z_scores > 3) | (z_scores < -3)]

8.箱线图

# 箱线图
plt.boxplot(df['numeric_column']) 
plt.xlabel('Numeric Column') 
plt.show()

9.分组和聚合

# 按分类列分组并计算平均值
grouped = df.groupby('category')['numeric_column'].mean() 
print(grouped)

10.数据分发

# 核密度估计 (KDE) 图
sns.kdeplot(df['numeric_column'], shade=True) 
plt.xlabel('Numeric Column') 
plt.ylabel('Density') 
plt.show()

11.分类变量分析

# 分类变量的条形图
sns.countplot(df['category']) 
plt.xlabel('Category') 
plt.ylabel('Count') 
plt.show()

12.日期时间分析

# 从日期列中提取年份
df['year'] = pd.to_datetime(df['date_column']).dt.year

13.数据转换

# 对数转换
import numpy as np 
df['log_column'] = np.log(df['numeric_column'])

14.特征工程

# 基于现有特征创建新特征
df['new_feature'] = df['feature1'] * df['feature2']

15.数据过滤

# 根据条件过滤行
filtered_df = df[df['numeric_column'] > 0]

16.降维

# 主成分分析 (PCA) 
from sklearn.decomposition import PCA 
pca = PCA(n_components=2) 
principal_components = pca.fit_transform(df[['feature1', 'feature2']])

17.数据采样

# 随机采样
sampled_df = df.sample(n=100, random_state=42)

18.数据标准化

# 最小-最大归一化
from sklearn.preprocessing import MinMaxScaler 
scaler = MinMaxScaler() 
df[['numeric_column']] = scaler.fit_transform(df[['numeric_column']])

19.数据装箱

# 将数值数据分类
bins = [0, 25, 50, 75, 100]
labels = ['Low', 'Medium', 'High', 'Very High']
df['bin_column'] = pd.cut(df['numeric_column'], bins=bins, labels=labels)

20.数据导出

# 将清理后的数据导出到CSV文件
df.to_csv('cleaned_data.csv', index=False)

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×