当前位置: 首页 > news >正文

【数据挖掘】Pandas

Pandas 是 Python 进行 数据挖掘数据分析 的核心库之一,提供了强大的 数据清洗、预处理、转换、分析可视化 功能。它通常与 NumPy、Matplotlib、Seaborn、Scikit-Learn 等库结合使用,帮助构建高效的数据挖掘流程。


📌 1. 读取数据

Pandas 支持多种数据格式,如 CSV、Excel、JSON、SQL、Parquet 等。

import pandas as pd# 读取 CSV 文件
df = pd.read_csv("data.csv")# 读取 Excel 文件
df = pd.read_excel("data.xlsx")# 读取 JSON 文件
df = pd.read_json("data.json")# 读取 SQL 数据库
import sqlite3
conn = sqlite3.connect("database.db")
df = pd.read_sql("SELECT * FROM table_name", conn)

📌 2. 数据探索(EDA)

2.1 查看数据基本信息

print(df.head())    # 查看前5行
print(df.tail())    # 查看后5行
print(df.info())    # 数据类型、缺失值情况
print(df.describe()) # 统计摘要(仅适用于数值列)
print(df.shape)     # 行列数
print(df.columns)   # 列名
print(df.dtypes)    # 每列的数据类型

2.2 缺失值检测

print(df.isnull().sum())   # 统计每列的缺失值数量
print(df.dropna().shape)   # 删除含有缺失值的行
df.fillna(df.mean(), inplace=True)  # 用均值填充缺失值

📌 3. 数据清洗

3.1 处理缺失值

df.fillna(df.median(), inplace=True)  # 用中位数填充
df.dropna(inplace=True)  # 删除缺失值

3.2 处理重复值

df.drop_duplicates(inplace=True)

3.3 处理异常值

# 以标准差为例,删除 3 倍标准差外的异常值
import numpy as np
df = df[(np.abs(df["column"] - df["column"].mean()) <= (3 * df["column"].std()))]

📌 4. 数据转换

4.1 数据类型转换

df["date_column"] = pd.to_datetime(df["date_column"])  # 转换为日期格式
df["int_column"] = df["int_column"].astype(float)      # int 转 float

4.2 处理分类数据

df["category"] = df["category"].astype("category")  # 转换为类别数据
df = pd.get_dummies(df, columns=["category"])  # 独热编码(One-Hot Encoding)

4.3 归一化 & 标准化

from sklearn.preprocessing import MinMaxScaler, StandardScalerscaler = MinMaxScaler()  # 归一化到 [0,1]
df["normalized"] = scaler.fit_transform(df[["column"]])scaler = StandardScaler()  # 标准化为均值 0,标准差 1
df["standardized"] = scaler.fit_transform(df[["column"]])

📌 5. 数据分组 & 统计分析

5.1 分组计算

df.groupby("category")["value"].mean()   # 按类别分组求均值
df.groupby("category")["value"].sum()    # 按类别求和
df.groupby(["category", "sub_category"])["value"].agg(["mean", "sum", "count"])  # 多指标统计

5.2 透视表

df.pivot_table(values="value", index="category", columns="year", aggfunc="sum")

5.3 计算相关性

df.corr()  # 计算数值型变量之间的相关性

📌 6. 数据可视化

import matplotlib.pyplot as plt
import seaborn as sns# 柱状图
df["category"].value_counts().plot(kind="bar")# 直方图
df["value"].hist(bins=30)# 相关性热图
sns.heatmap(df.corr(), annot=True, cmap="coolwarm")# 散点图
sns.scatterplot(x=df["feature1"], y=df["feature2"])# 盒须图(查看异常值)
sns.boxplot(x=df["category"], y=df["value"])

📌 7. 数据分割

7.1 训练集 & 测试集划分

from sklearn.model_selection import train_test_splitX = df.drop("target", axis=1)  # 特征
y = df["target"]  # 目标变量X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

📌 8. 数据导出

df.to_csv("cleaned_data.csv", index=False)  # 导出为 CSV
df.to_excel("cleaned_data.xlsx", index=False)  # 导出为 Excel
df.to_json("cleaned_data.json")  # 导出为 JSON

📌 9. Pandas + Scikit-Learn 数据挖掘

Pandas 可用于构建 机器学习模型,以下是一个简单的 回归分析示例

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 选择特征和目标变量
X = df[["feature1", "feature2"]]
y = df["target"]# 训练模型
model = LinearRegression()
model.fit(X, y)# 预测
y_pred = model.predict(X)# 计算误差
mse = mean_squared_error(y, y_pred)
print("均方误差:", mse)

📌 总结

Pandas 任务函数/方法
读取数据read_csv()read_excel()read_json()
数据探索head()info()describe()isnull()
数据清洗dropna()fillna()drop_duplicates()
数据转换astype()get_dummies()MinMaxScaler()
分组统计groupby()pivot_table()corr()
可视化hist()plot()heatmap()
机器学习train_test_split()LinearRegression()

Pandas 是数据挖掘的 核心工具,熟练掌握它能大幅提高数据分析和建模的效率! 🚀 🚀 🚀

http://www.lryc.cn/news/544948.html

相关文章:

  • explore与explode词源故事
  • CAM350_安装
  • 51c自动驾驶~合集22
  • games101 作业5
  • 【高并发秒杀系统设计:从Guava到Redis的6级缓存架构演进】
  • 2-程序语言基础知识
  • 【AIGC系列】4:Stable Diffusion应用实践和代码分析
  • 小米火龙CPU和其他几代温度太高的CPU是由谁代工的
  • 在 ASP.NET Core 中压缩并减少图像的文件大小
  • 网络流算法: Dinic算法
  • 【Godot4.3】自定义简易菜单栏节点ETDMenuBar
  • 如何杀死僵尸进程?没有那个进程?
  • Solana 核心概念全解析:账户、交易、合约与租约,高流量区块链技术揭秘!
  • Leetcode-853. Car Fleet [C++][Java]
  • 012 rocketmq事务消息
  • ChatGPT与DeepSeek:开源与闭源的AI模型之争
  • Ollama的底层实现原理分析
  • nginx 动态计算拦截非法访问ip
  • 商业秘密维权有哪些成本开支?
  • 使用UA-SPEECH和TORGO数据库验证自动构音障碍语音分类方法
  • WebSocketHandler 是 Spring Framework 中用于处理 WebSocket 通信的接口
  • Pikachu
  • 如何使用 Jenkins 实现 CI/CD 流水线:从零开始搭建自动化部署流程
  • Vue.js 学习笔记
  • 数据存储:一文掌握RabbitMQ的详细使用
  • 辛格迪客户案例 | 祐儿医药科技GMP培训管理(TMS)项目
  • FreeRtos实时系统: 十六.tickless低功耗模式
  • CSDN博客:Markdown编辑语法教程总结教程(上)
  • 多个pdf合并成一个pdf的方法
  • Spark基础篇 RDD、DataFrame与DataSet的关系、适用场景与演进趋势