
AI数据分析实战速成从零掌握Python与Codex全流程在数据驱动决策的时代掌握AI与数据分析技能已成为开发者的核心竞争力。无论是业务报表自动化、用户行为分析还是借助AI大模型提升数据处理效率这些能力都能让你在职场中脱颖而出。本文将以Python为核心工具结合最新的AI技术如Codex带你从零搭建完整的数据分析工作流涵盖环境配置、数据清洗、可视化分析到AI辅助编程的全流程实战。1. 环境准备与工具配置1.1 Python环境安装与配置Python作为数据分析的首选语言其丰富的库生态系统为数据处理提供了强大支持。建议使用Python 3.8及以上版本以获得更好的性能和新特性支持。Windows系统安装步骤访问Python官网下载安装包运行安装程序时勾选Add Python to PATH选择自定义安装确保pip工具被包含完成安装后验证打开CMD输入python --version配置虚拟环境推荐# 创建虚拟环境 python -m venv data_analysis_env # 激活环境Windows data_analysis_env\Scripts\activate # 激活环境Mac/Linux source data_analysis_env/bin/activate1.2 必备数据分析库安装数据分析工作流依赖几个核心库使用pip批量安装pip install pandas numpy matplotlib seaborn jupyter notebookpandas数据处理与分析核心库numpy数值计算基础matplotlib基础绘图库seaborn统计可视化库jupyter交互式编程环境1.3 开发环境配置推荐使用VS Code作为主力编辑器安装Python扩展和Jupyter支持安装VS Code后搜索安装Python扩展安装Jupyter扩展支持notebook操作配置Python解释器路径CtrlShiftP输入Python: Select Interpreter2. 数据分析基础与pandas实战2.1 pandas数据结构详解pandas提供两种核心数据结构Series一维数组和DataFrame二维表格它们是数据分析的基石。Series基本操作import pandas as pd import numpy as np # 创建Series data pd.Series([1, 3, 5, np.nan, 6, 8]) print(data) print(f数据类型: {data.dtype}) print(f数据形状: {data.shape}) # Series索引和切片 print(data[0]) # 第一个元素 print(data[1:4]) # 切片操作DataFrame创建与操作# 从字典创建DataFrame data { 姓名: [张三, 李四, 王五, 赵六], 年龄: [25, 30, 35, 28], 城市: [北京, 上海, 广州, 深圳], 薪资: [15000, 18000, 20000, 16000] } df pd.DataFrame(data) print(原始数据:) print(df) print(f数据形状: {df.shape}) print(f列名: {df.columns.tolist()})2.2 数据清洗与预处理实战真实数据往往存在缺失值、异常值等问题数据清洗是分析的前提。处理缺失值# 创建包含缺失值的数据 data_with_na { A: [1, 2, None, 4, 5], B: [None, 2, 3, 4, 5], C: [1, 2, 3, None, 5] } df_na pd.DataFrame(data_with_na) print(原始数据含缺失值:) print(df_na) # 检查缺失值 print(\n缺失值统计:) print(df_na.isnull().sum()) # 填充缺失值 df_filled df_na.fillna({A: df_na[A].mean(), B: 未知, C: df_na[C].median()}) print(\n填充后数据:) print(df_filled)数据去重与类型转换# 数据去重 duplicate_data pd.DataFrame({ id: [1, 2, 2, 3, 4, 4], value: [A, B, B, C, D, D] }) print(去重前:) print(duplicate_data) print(f去重前形状: {duplicate_data.shape}) deduplicated duplicate_data.drop_duplicates() print(\n去重后:) print(deduplicated) print(f去重后形状: {deduplicated.shape}) # 数据类型转换 df[年龄] df[年龄].astype(float32) print(f\n数据类型转换后: {df.dtypes})3. 数据可视化实战3.1 matplotlib基础绘图matplotlib是Python最基础的绘图库掌握其核心用法至关重要。折线图与柱状图import matplotlib.pyplot as plt import seaborn as sns # 设置中文字体解决中文显示问题 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False # 创建示例数据 months [1月, 2月, 3月, 4月, 5月, 6月] sales [120, 150, 130, 170, 160, 200] costs [80, 90, 85, 100, 95, 110] # 创建子图 fig, (ax1, ax2) plt.subplots(1, 2, figsize(12, 5)) # 折线图 ax1.plot(months, sales, markero, label销售额, linewidth2) ax1.plot(months, costs, markers, label成本, linewidth2) ax1.set_title(上半年销售趋势) ax1.set_xlabel(月份) ax1.set_ylabel(金额万元) ax1.legend() ax1.grid(True, alpha0.3) # 柱状图 ax2.bar(months, sales, alpha0.7, label销售额) ax2.set_title(月度销售额) ax2.set_xlabel(月份) ax2.set_ylabel(销售额万元) plt.tight_layout() plt.show()3.2 seaborn高级可视化seaborn基于matplotlib提供更美观的统计图表。分布图与热力图# 创建示例数据 np.random.seed(42) exam_data pd.DataFrame({ 数学: np.random.normal(75, 10, 100), 英语: np.random.normal(80, 8, 100), 物理: np.random.normal(70, 12, 100) }) # 分布图 plt.figure(figsize(15, 5)) plt.subplot(1, 3, 1) sns.histplot(dataexam_data, x数学, kdeTrue) plt.title(数学成绩分布) plt.subplot(1, 3, 2) sns.boxplot(dataexam_data[[数学, 英语, 物理]]) plt.title(各科成绩箱线图) plt.subplot(1, 3, 3) # 计算相关系数矩阵 corr_matrix exam_data.corr() sns.heatmap(corr_matrix, annotTrue, cmapcoolwarm, center0) plt.title(成绩相关性热力图) plt.tight_layout() plt.show()4. 实战案例电商用户行为分析4.1 数据加载与探索通过一个完整的电商数据分析案例综合运用前面所学技能。# 模拟电商用户行为数据 np.random.seed(123) n_users 1000 user_data pd.DataFrame({ user_id: range(1, n_users 1), age: np.random.randint(18, 65, n_users), gender: np.random.choice([男, 女], n_users), city: np.random.choice([北京, 上海, 广州, 深圳, 杭州], n_users), registration_date: pd.date_range(2023-01-01, periodsn_users, freqH), total_purchases: np.random.poisson(5, n_users), total_spent: np.random.exponential(500, n_users), last_login: pd.to_datetime(2024-01-01) - pd.to_timedelta(np.random.randint(1, 365, n_users), unitD) }) print(数据基本信息:) print(user_data.info()) print(f\n数据形状: {user_data.shape}) print(f\n前5行数据:) print(user_data.head())4.2 数据洞察分析通过多维度分析挖掘用户行为特征。用户基本画像分析# 基本统计描述 print(数值型变量描述统计:) print(user_data[[age, total_purchases, total_spent]].describe()) # 分类变量统计 print(\n城市分布:) city_counts user_data[city].value_counts() print(city_counts) print(\n性别分布:) gender_counts user_data[gender].value_counts() print(gender_counts) # 可视化用户画像 fig, axes plt.subplots(2, 2, figsize(15, 10)) # 年龄分布 axes[0, 0].hist(user_data[age], bins20, alpha0.7, colorskyblue) axes[0, 0].set_title(用户年龄分布) axes[0, 0].set_xlabel(年龄) axes[0, 0].set_ylabel(用户数量) # 城市分布 city_counts.plot(kindbar, axaxes[0, 1], colorlightgreen) axes[0, 1].set_title(用户城市分布) axes[0, 1].set_xlabel(城市) axes[0, 1].tick_params(axisx, rotation45) # 消费金额分布 axes[1, 0].hist(user_data[total_spent], bins30, alpha0.7, colorsalmon) axes[1, 0].set_title(用户总消费金额分布) axes[1, 0].set_xlabel(消费金额元) axes[1, 0].set_ylabel(用户数量) # 购买次数分布 purchase_counts user_data[total_purchases].value_counts().sort_index() purchase_counts.plot(kindbar, axaxes[1, 1], colorgold) axes[1, 1].set_title(用户购买次数分布) axes[1, 1].set_xlabel(购买次数) axes[1, 1].set_ylabel(用户数量) plt.tight_layout() plt.show()4.3 深入分析用户价值分层基于RFM模型进行用户价值分析。# 计算用户活跃度基于最后登录时间 current_date pd.to_datetime(2024-01-01) user_data[days_since_login] (current_date - user_data[last_login]).dt.days user_data[recency_score] pd.cut(user_data[days_since_login], bins[0, 30, 90, 365], labels[3, 2, 1]) # 计算频率和金额分数 user_data[frequency_score] pd.cut(user_data[total_purchases], bins[0, 2, 5, 100], labels[1, 2, 3]) user_data[monetary_score] pd.cut(user_data[total_spent], bins[0, 200, 500, 10000], labels[1, 2, 3]) # RFM总分 user_data[rfm_score] (user_data[recency_score].astype(int) user_data[frequency_score].astype(int) user_data[monetary_score].astype(int)) # 用户分层 def classify_customer(rfm_score): if rfm_score 8: return 高价值用户 elif rfm_score 5: return 中等价值用户 else: return 低价值用户 user_data[customer_segment] user_data[rfm_score].apply(classify_customer) # 分层结果分析 segment_analysis user_data.groupby(customer_segment).agg({ user_id: count, total_purchases: mean, total_spent: mean, days_since_login: mean }).round(2) segment_analysis.columns [用户数量, 平均购买次数, 平均消费金额, 平均未登录天数] print(用户价值分层分析:) print(segment_analysis)5. AI辅助数据分析Codex实战应用5.1 Codex环境配置与基础使用Codex作为AI编程助手可以显著提升数据分析效率。环境配置要点确保Python环境正常安装必要的API客户端库获取合法的API访问权限配置访问密钥和环境变量基础使用示例import openai import os # 配置API密钥实际使用中应从环境变量读取 # openai.api_key os.getenv(OPENAI_API_KEY) def analyze_data_with_ai(data_description, analysis_goal): 使用AI辅助分析数据 prompt f 你是一名数据分析专家。我有以下数据 {data_description} 我的分析目标是{analysis_goal} 请提供 1. 合适的数据分析方法 2. 需要关注的指标 3. 可能的数据可视化方案 4. 常见的分析陷阱提醒 # 实际调用代码示例需要有效的API密钥 response openai.ChatCompletion.create( modelgpt-3.5-turbo, messages[ {role: system, content: 你是一名资深数据分析师}, {role: user, content: prompt} ], max_tokens1000 ) return response.choices[0].message.content # 模拟返回结果 return AI分析建议建议使用相关性分析、聚类分析等方法重点关注用户行为模式... # 使用示例 data_desc 包含用户年龄、性别、购买次数、消费金额的电商数据 goal 识别高价值用户特征 advice analyze_data_with_ai(data_desc, goal) print(advice)5.2 AI生成数据分析代码利用AI快速生成常见分析任务的代码模板。def generate_analysis_code(dataframe_description, analysis_type): 生成特定分析类型的代码模板 prompt f 生成Python代码用于{analysis_type}分析。 数据框描述{dataframe_description} 要求 1. 使用pandas和matplotlib/seaborn 2. 包含完整的数据处理和可视化代码 3. 添加适当的注释 4. 代码要能够直接运行 # 模拟AI生成的代码 code_template f import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np # 数据加载根据实际情况修改路径 # df pd.read_csv(your_data.csv) # 数据预览 print(数据形状:, df.shape) print(\\n前5行数据:) print(df.head()) # 基本统计信息 print(\\n描述性统计:) print(df.describe()) # 缺失值检查 print(\\n缺失值统计:) print(df.isnull().sum()) # {analysis_type}分析核心代码 def perform_analysis(data): 执行{analysis_type}分析 # 这里根据具体分析类型实现相应逻辑 if {analysis_type} 相关性: # 计算相关系数矩阵 corr_matrix data.corr() # 可视化相关性热力图 plt.figure(figsize(10, 8)) sns.heatmap(corr_matrix, annotTrue, cmapcoolwarm, center0) plt.title(变量相关性热力图) plt.tight_layout() plt.show() return corr_matrix elif {analysis_type} 分布: # 数值型变量的分布分析 numeric_cols data.select_dtypes(include[np.number]).columns fig, axes plt.subplots(2, 2, figsize(12, 10)) axes axes.ravel() for i, col in enumerate(numeric_cols[:4]): data[col].hist(axaxes[i], alpha0.7) axes[i].set_title(f{col}分布) axes[i].set_xlabel(col) axes[i].set_ylabel(频数) plt.tight_layout() plt.show() return 分析完成 # 执行分析 result perform_analysis(df) print(result) return code_template # 生成相关性分析代码 correlation_code generate_analysis_code(电商用户行为数据, 相关性) print(生成的代码模板:) print(correlation_code)6. 高级数据分析技巧6.1 时间序列分析时间序列数据在业务分析中极为常见掌握其分析方法至关重要。# 创建时间序列示例数据 dates pd.date_range(2023-01-01, 2023-12-31, freqD) time_series_data pd.DataFrame({ date: dates, sales: np.sin(np.arange(len(dates)) * 2 * np.pi / 365) * 100 500 np.random.normal(0, 20, len(dates)), visitors: np.cos(np.arange(len(dates)) * 2 * np.pi / 365) * 50 200 np.random.normal(0, 10, len(dates)) }) # 设置日期为索引 time_series_data.set_index(date, inplaceTrue) # 时间序列分析 plt.figure(figsize(15, 10)) # 原始序列图 plt.subplot(3, 1, 1) plt.plot(time_series_data.index, time_series_data[sales], label销售额) plt.plot(time_series_data.index, time_series_data[visitors], label访客数) plt.title(销售额和访客数时间序列) plt.legend() plt.grid(True, alpha0.3) # 移动平均平滑 plt.subplot(3, 1, 2) time_series_data[sales_ma] time_series_data[sales].rolling(window7).mean() time_series_data[visitors_ma] time_series_data[visitors].rolling(window7).mean() plt.plot(time_series_data.index, time_series_data[sales_ma], label销售额(7日移动平均)) plt.plot(time_series_data.index, time_series_data[visitors_ma], label访客数(7日移动平均)) plt.title(移动平均平滑后的序列) plt.legend() plt.grid(True, alpha0.3) # 相关性分析 plt.subplot(3, 1, 3) plt.scatter(time_series_data[visitors], time_series_data[sales], alpha0.5) plt.xlabel(访客数) plt.ylabel(销售额) plt.title(访客数与销售额散点图) # 计算相关系数 correlation time_series_data[visitors].corr(time_series_data[sales]) plt.text(0.05, 0.95, f相关系数: {correlation:.3f}, transformplt.gca().transAxes, bboxdict(boxstyleround, facecolorwheat)) plt.tight_layout() plt.show()6.2 机器学习初步应用使用scikit-learn进行简单的预测分析。from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score from sklearn.preprocessing import StandardScaler # 准备机器学习数据 ml_data user_data[[age, total_purchases, days_since_login]].copy() ml_data[gender_numeric] user_data[gender].map({男: 0, 女: 1}) # 目标变量消费金额 target user_data[total_spent] # 数据预处理 scaler StandardScaler() features_scaled scaler.fit_transform(ml_data) # 划分训练测试集 X_train, X_test, y_train, y_test train_test_split( features_scaled, target, test_size0.2, random_state42 ) # 训练线性回归模型 model LinearRegression() model.fit(X_train, y_train) # 预测和评估 y_pred model.predict(X_test) # 评估指标 mse mean_squared_error(y_test, y_pred) r2 r2_score(y_test, y_pred) print(模型评估结果:) print(f均方误差(MSE): {mse:.2f}) print(fR²分数: {r2:.3f}) # 可视化预测结果 plt.figure(figsize(10, 6)) plt.scatter(y_test, y_pred, alpha0.5) plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], r--, lw2) plt.xlabel(实际值) plt.ylabel(预测值) plt.title(线性回归预测效果) plt.show() # 特征重要性分析 feature_importance pd.DataFrame({ feature: ml_data.columns, importance: model.coef_ }).sort_values(importance, ascendingFalse) print(\n特征重要性排序:) print(feature_importance)7. 数据分析项目实战框架7.1 完整项目结构设计一个规范的数据分析项目应该包含以下结构数据分析项目/ ├── data/ # 数据目录 │ ├── raw/ # 原始数据 │ ├── processed/ # 处理后的数据 │ └── external/ # 外部数据源 ├── notebooks/ # Jupyter笔记本 │ ├── 01_data_exploration.ipynb │ ├── 02_data_cleaning.ipynb │ └── 03_analysis.ipynb ├── src/ # 源代码 │ ├── data_processing.py │ ├── visualization.py │ └── models.py ├── reports/ # 分析报告 │ └── final_report.pdf ├── requirements.txt # 依赖列表 └── README.md # 项目说明7.2 自动化分析流水线创建可重用的分析模板函数class DataAnalysisPipeline: 数据分析流水线类 def __init__(self, data_path): self.data_path data_path self.df None self.results {} def load_data(self): 加载数据 # 根据文件类型选择加载方法 if self.data_path.endswith(.csv): self.df pd.read_csv(self.data_path) elif self.data_path.endswith(.xlsx): self.df pd.read_excel(self.data_path) else: raise ValueError(不支持的文件格式) print(f数据加载成功形状: {self.df.shape}) return self def exploratory_analysis(self): 探索性分析 print( 探索性数据分析 ) print(f数据形状: {self.df.shape}) print(f\n数据类型:) print(self.df.dtypes) print(f\n缺失值统计:) print(self.df.isnull().sum()) print(f\n描述性统计:) print(self.df.describe()) self.results[exploratory] { shape: self.df.shape, missing_values: self.df.isnull().sum().to_dict(), description: self.df.describe().to_dict() } return self def clean_data(self): 数据清洗 print(\n 数据清洗 ) # 处理缺失值 initial_missing self.df.isnull().sum().sum() self.df self.df.dropna() # 或使用填充策略 final_missing self.df.isnull().sum().sum() print(f处理缺失值: {initial_missing} - {final_missing}) print(f清洗后形状: {self.df.shape}) self.results[cleaning] { initial_missing: initial_missing, final_missing: final_missing, final_shape: self.df.shape } return self def analyze(self, target_columnNone): 核心分析 print(\n 核心分析 ) if target_column and target_column in self.df.columns: # 目标变量分析 target_analysis self.df[target_column].describe() print(f目标变量 {target_column} 分析:) print(target_analysis) self.results[target_analysis] target_analysis.to_dict() # 相关性分析 numeric_df self.df.select_dtypes(include[np.number]) if not numeric_df.empty: correlation numeric_df.corr() self.results[correlation] correlation.to_dict() # 可视化相关性矩阵 plt.figure(figsize(10, 8)) sns.heatmap(correlation, annotTrue, cmapcoolwarm, center0) plt.title(变量相关性热力图) plt.tight_layout() plt.show() return self def generate_report(self): 生成分析报告 print(\n 分析报告 ) report f 数据分析报告 数据概览: - 原始数据形状: {self.results.get(exploratory, {}).get(shape, N/A)} - 清洗后形状: {self.results.get(cleaning, {}).get(final_shape, N/A)} - 处理缺失值: {self.results.get(cleaning, {}).get(initial_missing, 0)} 个 关键发现: - 数据质量: {良好 if self.results.get(cleaning, {}).get(final_missing, 0) 0 else 需要改进} - 变量数量: {len(self.df.columns) if self.df is not None else 0} print(report) return report # 使用示例 # pipeline DataAnalysisPipeline(data.csv) # report (pipeline.load_data() # .exploratory_analysis() # .clean_data() # .analyze(target_column) # .generate_report())8. 常见问题与解决方案8.1 环境配置问题问题1Python包安装失败症状pip install 时出现权限错误或超时解决方案使用国内镜像源如清华源、阿里云源pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name问题2Jupyter Notebook无法启动症状启动后无法访问本地服务解决方案检查端口占用或使用指定端口启动jupyter notebook --port 88898.2 数据处理常见错误问题3内存不足处理大数据症状处理大型数据集时内存溢出解决方案使用分块处理或优化数据类型# 分块读取大数据文件 chunk_size 10000 chunks pd.read_csv(large_file.csv, chunksizechunk_size) for chunk in chunks: # 处理每个数据块 process_chunk(chunk) # 优化数据类型减少内存占用 df[column] df[column].astype(category)问题4日期时间格式转换错误症状日期解析失败或格式不一致解决方案统一日期格式处理异常值# 统一日期格式 df[date] pd.to_datetime(df[date], errorscoerce) # 处理解析失败的日期 invalid_dates df[date].isnull() print(f无效日期数量: {invalid_dates.sum()})8.3 可视化问题问题5中文显示乱码症状图表中的中文显示为方框解决方案设置中文字体import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei, Microsoft YaHei] plt.rcParams[axes.unicode_minus] False问题6图表显示不完整症状图表元素重叠或显示不全解决方案调整图表尺寸和布局plt.figure(figsize(12, 8)) plt.tight_layout() plt.subplots_adjust(wspace0.3, hspace0.3)9. 最佳实践与性能优化9.1 代码规范与可维护性遵循PEP 8规范使用有意义的变量名适当添加注释和文档字符串保持函数单一职责原则使用类型提示Python 3.5示例规范代码from typing import Dict, List, Optional import pandas as pd def calculate_customer_lifetime_value( purchase_data: pd.DataFrame, customer_id_col: str customer_id, revenue_col: str revenue, period_col: str period ) - Dict[str, float]: 计算客户生命周期价值 Args: purchase_data: 包含购买记录的数据框 customer_id_col: 客户ID列名 revenue_col: 收入列名 period_col: 时间周期列名 Returns: 每个客户的CLV字典 try: # 按客户分组计算总价值 clv_data (purchase_data .groupby(customer_id_col) .agg({revenue_col: sum, period_col: nunique}) .reset_index()) # 计算平均周期价值 clv_data[clv] clv_data[revenue_col] / clv_data[period_col] return dict(zip(clv_data[customer_id_col], clv_data[clv])) except Exception as e: print(f计算CLV时出错: {e}) return {}9.2 性能优化技巧大数据处理优化# 1. 使用适当的数据类型 def optimize_dataframe(df: pd.DataFrame) - pd.DataFrame: 优化DataFrame内存使用 # 转换数值类型 for col in df.select_dtypes(include[int]).columns: df[col] pd.to_numeric(df[col], downcastinteger) # 转换浮点类型 for col in df.select_dtypes(include[float]).columns: df[col] pd.to_numeric(df[col], downcastfloat) # 转换字符串为分类类型 for col in df.select_dtypes(include[object]).columns: if df[col].nunique() / len(df) 0.5: # 唯一值比例小于50% df[col] df[col].astype(category) return df # 2. 使用向量化操作替代循环 def vectorized_calculation(df: pd.DataFrame) - pd.DataFrame: 向量化计算示例 # 不好的做法使用循环 # for i in range(len(df)): # df.loc[i, new_col] df.loc[i, col1] * df.loc[i, col2] # 好的做法向量化操作 df[new_col] df[col1] * df[col2] return df # 3. 使用并行处理 from concurrent.futures import ProcessPoolExecutor import multiprocessing as mp def parallel_processing(data_chunks: List[pd.DataFrame]) - List[pd.DataFrame]: 并行处理数据块 def process_chunk(chunk: pd.DataFrame) - pd.DataFrame: # 处理单个数据块 return chunk.apply(lambda x: x * 2) # 示例操作 with ProcessPoolExecutor(max_workersmp.cpu_count()) as executor: results list(executor.map(process_chunk, data_chunks)) return results9.3 项目部署与自动化创建可复用的分析模板# config.py - 配置文件 ANALYSIS_CONFIG { data_paths: { raw: data/raw/, processed: data/processed/, output: output/ }, analysis_params: { target_column: sales, date_column: date, grouping_columns: [region, product_category] }, visualization: { style: seaborn, color_palette: Set2, figure_size: (12, 8) } } # main.py - 主执行文件 def main(): 主分析流程 from data_pipeline import DataAnalysisPipeline from config import ANALYSIS_CONFIG # 初始化流水线 pipeline DataAnalysisPipeline(ANALYSIS_CONFIG[data_paths][raw] sales_data.csv) # 执行完整分析流程 report (pipeline.load_data() .exploratory_analysis() .clean_data() .analyze(ANALYSIS_CONFIG[analysis_params][target_column]) .generate_report()) # 保存结果 with open(ANALYSIS_CONFIG[data_paths][output] analysis_report.txt, w) as f: f.write(report) print(分析完成) if __name__ __main__: main()通过系统学习Python数据分析基础、掌握pandas数据操作、熟练使用可视化工具并结合AI技术提升分析效率你已经建立了完整的数据分析能力体系。在实际项目中记得从业务需求出发选择合适的技术方案注重代码的可维护性和性能优化。数据分析是一个需要不断实践和积累的领域建议通过实际项目持续提升技能水平。