news 2026/6/9 23:40:58

python数据分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python数据分析

Python数据分析是一个系统性的技术领域,涉及数据获取、清洗、处理、可视化到建模的完整流程。以下是核心知识体系和实践指南:

一、Python数据分析技术栈

核心库与工具

库名称

主要用途

学习重点

NumPy

数值计算基础,多维数组操作

数组创建、索引切片、广播机制、数学运算

Pandas

数据处理核心,表格数据操作

DataFrame操作、数据清洗、分组聚合、合并连接

Matplotlib

基础绘图库,高度可定制

折线图、柱状图、散点图、子图布局

Seaborn

统计可视化,基于Matplotlib

分布图、热力图、分类图、主题美化

Scikit-learn

机器学习库,算法丰富

数据预处理、模型训练、评估、特征工程

辅助工具

  • Jupyter Notebook/JupyterLab:交互式开发环境,适合探索性分析

  • VS Code/PyCharm:专业IDE,适合大型项目

  • Anaconda:包管理工具,简化环境配置

二、数据分析完整流程

阶段1:数据获取与加载

import pandas as pd # 从CSV文件读取 df = pd.read_csv('data.csv', encoding='utf-8') # 从Excel读取 df = pd.read_excel('data.xlsx', sheet_name='Sheet1') # 从数据库读取(需安装对应驱动) import sqlite3 conn = sqlite3.connect('database.db') df = pd.read_sql_query('SELECT * FROM table', conn)

阶段2:数据探索与清洗

# 查看数据基本信息 print(df.info()) # 数据类型、缺失值 print(df.describe()) # 数值型统计描述 print(df.head()) # 前几行数据 # 处理缺失值 df.dropna() # 删除缺失行 df.fillna(0) # 填充为0 df.fillna(df.mean()) # 用均值填充 # 处理重复值 df.drop_duplicates() # 数据类型转换 df['column'] = df['column'].astype('int') # 转换为整型 df['date_col'] = pd.to_datetime(df['date_col']) # 转换为日期 # 异常值处理 Q1 = df['col'].quantile(0.25) Q3 = df['col'].quantile(0.75) IQR = Q3 - Q1 df = df[~((df['col'] < (Q1 - 1.5*IQR)) | (df['col'] > (Q3 + 1.5*IQR)))]

阶段3:数据预处理与特征工程

# 数据标准化 from sklearn.preprocessing import StandardScaler scaler = StandardScaler() df_scaled = scaler.fit_transform(df[['col1', 'col2']]) # 独热编码(分类变量) df_encoded = pd.get_dummies(df, columns=['category_col']) # 时间特征提取 df['year'] = df['date_col'].dt.year df['month'] = df['date_col'].dt.month df['day_of_week'] = df['date_col'].dt.dayofweek # 分组聚合 grouped = df.groupby('category')['value'].agg(['mean', 'std', 'count'])

阶段4:数据可视化

import matplotlib.pyplot as plt import seaborn as sns # 设置样式 plt.style.use('seaborn-v0_8') sns.set_palette('husl') # 单变量分布 plt.figure(figsize=(10, 6)) sns.histplot(df['value'], kde=True) plt.title('Value Distribution') plt.show() # 双变量关系 plt.figure(figsize=(10, 6)) sns.scatterplot(x='x_col', y='y_col', data=df, hue='category') plt.title('Scatter Plot') plt.show() # 多变量热力图 corr = df.corr() plt.figure(figsize=(12, 8)) sns.heatmap(corr, annot=True, cmap='coolwarm') plt.title('Correlation Heatmap') plt.show()

阶段5:建模与评估

from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score # 划分训练集和测试集 X = df[['feature1', 'feature2']] y = df['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 模型训练 model = LinearRegression() model.fit(X_train, y_train) # 预测与评估 y_pred = model.predict(X_test) print('MSE:', mean_squared_error(y_test, y_pred)) print('R2 Score:', r2_score(y_test, y_pred)) # 特征重要性(线性回归系数) coef_df = pd.DataFrame({'feature': X.columns, 'coefficient': model.coef_}) print(coef_df.sort_values('coefficient', ascending=False))

三、常用数据分析场景

1. 描述性统计分析

# 基本统计量 df.describe() # 分类变量统计 df['category'].value_counts() # 交叉表 pd.crosstab(df['cat1'], df['cat2']) # 分组统计 df.groupby('group_col')['value_col'].agg(['mean', 'median', 'std'])

2. 时间序列分析

# 设置时间索引 df_time = df.set_index('date_col') # 重采样(日→月) monthly_data = df_time['value'].resample('M').mean() # 移动平均 rolling_mean = df_time['value'].rolling(window=7).mean() # 时间序列可视化 plt.figure(figsize=(12, 6)) plt.plot(df_time.index, df_time['value'], label='Original') plt.plot(rolling_mean.index, rolling_mean, label='7-Day MA', color='red') plt.legend() plt.show()

3. 数据透视表

# 创建透视表 pivot_table = pd.pivot_table(df, values='sales', index='region', columns='month', aggfunc='sum', fill_value=0) print(pivot_table)

4. 数据合并与连接

# 按列合并 pd.concat([df1, df2], axis=1) # 按行合并 pd.concat([df1, df2], axis=0) # 按键连接 pd.merge(df1, df2, on='key_col', how='inner') # 内连接 pd.merge(df1, df2, on='key_col', how='left') # 左连接
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:26:27

免费且完全开源的金融平台,金融数据集软件openbb

首个免费且完全开源的金融平台 repo&#xff1a;https://github.com/OpenBB-finance/OpenBB 手册&#xff1a;https://docs.openbb.co/odp/python/quickstart agent:https://github.com/OpenBB-finance/agents-for-openbb 提供股票、期权、加密货币、外汇、宏观经济、固定收…

作者头像 李华
网站建设 2026/6/10 13:20:57

计算机18个专业避坑指南:谁是毕业即高薪的“宝藏”,谁是天坑?

一次搞懂计算机类18个本科专业方向的区别&#xff0c;谁是“宝藏”谁是“天坑”&#xff1f; 随着科技进步的日新月异&#xff0c;互联网在日常生活中所扮演的角色越来越重要。数字化、信息化的时代里&#xff0c;计算机类专业无疑是当今高考最热门且最具发展前景的志愿填报方…

作者头像 李华
网站建设 2026/6/10 11:25:13

利用云服务器自带的快照功能

一、灾备核心指标&#xff1a;明确 RTO 与 RPO 目标​云服务器灾备的核心是平衡业务连续性与成本&#xff0c;需先定义两大关键指标&#xff1a;恢复时间目标&#xff08;RTO&#xff09;与恢复点目标&#xff08;RPO&#xff09;。RTO 指故障后业务恢复的最长可接受时间&#…

作者头像 李华
网站建设 2026/6/10 13:15:52

从一场千人共赴的准业主家宴,看这家房企前置化社区运营底气!

2026年2月2日&#xff0c;西安&#xff0c;寒冬未褪。有一家房企&#xff0c;却做了一件很“超前”的事&#xff0c;温暖了人心。 还未开盘&#xff0c;就把准业主们聚到了一起&#xff0c;举办了一场五星级规格的千人家宴。当别人都在抢营销热度时&#xff0c;这家房企已经开…

作者头像 李华