【数据挖掘】Pandas之DataFrame

在 Pandas 中,DataFrame 提供了丰富的数据操作功能,包括 查询、编辑、分类和汇总。


1. 数据查询(Filtering & Querying)

1.1 按索引或列名查询

复制代码
import pandas as pd

data = {
    "ID": [101, 102, 103, 104, 105],
    "Name": ["Alice", "Bob", "Charlie", "David", "Eva"],
    "Age": [25, 30, 35, 40, 28],
    "Salary": [5000, 7000, 6000, 8000, 7200],
    "Department": ["HR", "IT", "Finance", "IT", "HR"]
}

df = pd.DataFrame(data)

# 查询某一列
print(df["Age"])  # 返回 Series
print(df[["Name", "Salary"]])  # 返回 DataFrame

# 查询某一行(基于索引)
print(df.loc[2])  # 按标签索引
print(df.iloc[2])  # 按行号索引

1.2 按条件查询

复制代码
# 查询 Age > 30 的员工
df[df["Age"] > 30]

# 查询 IT 部门的员工
df[df["Department"] == "IT"]

# 查询 Age 大于 30 且 Salary 大于 7000 的员工
df[(df["Age"] > 30) & (df["Salary"] > 7000)]

1.3 使用 query() 方法

复制代码
df.query("Age > 30 & Salary > 7000")

2. 数据编辑(Updating & Modifying)

2.1 修改某列数据

复制代码
# 调整所有工资增加 10%
df["Salary"] = df["Salary"] * 1.1

2.2 修改某个单元格

复制代码
df.at[2, "Salary"] = 6500  # 使用 `at`(基于标签)
df.iat[2, 3] = 6500  # 使用 `iat`(基于整数索引)

2.3 添加新列

复制代码
df["Bonus"] = df["Salary"] * 0.1

2.4 删除行/列

复制代码
df.drop(columns=["Bonus"], inplace=True)  # 删除列
df.drop(index=2, inplace=True)  # 删除某行

2.5 重命名列

复制代码
df.rename(columns={"Salary": "Income"}, inplace=True)

3. 数据分类(Categorization)

3.1 按类别转换数据

复制代码
# 将 'Department' 转换为分类数据类型
df["Department"] = df["Department"].astype("category")

3.2 使用 cut() 进行数值分箱

复制代码
df["Age Group"] = pd.cut(df["Age"], bins=[20, 30, 40, 50], labels=["Young", "Middle-aged", "Senior"])

3.3 使用 map() 转换数据

复制代码
df["Department_Code"] = df["Department"].map({"HR": 1, "IT": 2, "Finance": 3})

4. 数据汇总(Aggregation & Grouping)

4.1 统计汇总

复制代码
df.describe()  # 统计数值列的基本信息
df["Salary"].sum()  # 计算总工资
df["Salary"].mean()  # 计算平均工资
df["Salary"].median()  # 计算工资中位数
df["Salary"].std()  # 计算工资标准差

4.2 按类别分组聚合

复制代码
df.groupby("Department")["Salary"].mean()  # 按部门计算平均工资
df.groupby("Department")["Salary"].agg(["mean", "max", "min"])  # 计算多个统计指标

4.3 透视表(Pivot Table)

复制代码
df.pivot_table(values="Salary", index="Department", aggfunc="mean")

总结

操作 方法
查询 df[df["Age"] > 30],df.query()
编辑 df["Salary"] = df["Salary"] * 1.1,df.at[],df.drop()
分类 df["Age Group"] = pd.cut(),df["Department"].astype("category")
汇总 df.groupby("Department").agg(),df.pivot_table()

这些 Pandas 操作可以高效地管理和分析 DataFrame 数据,提高数据处理效率! 🚀

相关推荐
龙亘川几秒前
智慧交通运输监管平台业务建模与架构解析
人工智能·架构·智慧城市·数据可视化·政务
Summer-Bright4 分钟前
深度 | 谷歌Gemini 4 Argon单次输出100万Token:长输出是智能体刚需,先给防御者不给攻击者才是新玩法
人工智能·安全·ai
梦帮科技5 分钟前
多任务权重流形融合:SLERP 球形线性插值、DARE 稀疏剪枝与多专家模型融合落地
人工智能·深度学习·算法·机器学习·tensorflow·聚类·剪枝
Elastic 中国社区官方博客7 分钟前
使用 Jev 作为 search reranker:基准测试与实现方法
大数据·运维·elasticsearch·全文检索
合调于形9 分钟前
Xinxngb xnrxim chanyes《新兴信息产业》词条汉语拼音字母标调拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
workflower12 分钟前
世界模型向产业上游发掘的热点
人工智能·机器学习·机器人·云计算·无人机
Yolanda_202215 分钟前
17.卷积操作
人工智能·深度学习
`流年づ16 分钟前
卷积核与反卷积知识补充
人工智能·深度学习·计算机视觉
百无聊赖是也非也22 分钟前
当 AI 闯入理论物理:终结算力困境,重塑科研边界
人工智能
szxinmai主板定制专家23 分钟前
RK3568+FPGA+CODESYS异构控制方案:赋能半导体设备与工业自动化升级
人工智能·fpga开发·自动化·rk3576·半导体设备