【数据发掘】Pandas之DataFrame

打印 上一主题 下一主题

主题 1001|帖子 1001|积分 3003

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

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

1. 数据查询(Filtering & Querying)

1.1 按索引或列名查询

  1. import pandas as pd
  2. data = {
  3.     "ID": [101, 102, 103, 104, 105],
  4.     "Name": ["Alice", "Bob", "Charlie", "David", "Eva"],
  5.     "Age": [25, 30, 35, 40, 28],
  6.     "Salary": [5000, 7000, 6000, 8000, 7200],
  7.     "Department": ["HR", "IT", "Finance", "IT", "HR"]
  8. }
  9. df = pd.DataFrame(data)
  10. # 查询某一列
  11. print(df["Age"])  # 返回 Series
  12. print(df[["Name", "Salary"]])  # 返回 DataFrame
  13. # 查询某一行(基于索引)
  14. print(df.loc[2])  # 按标签索引
  15. print(df.iloc[2])  # 按行号索引
复制代码
1.2 按条件查询

  1. # 查询 Age > 30 的员工
  2. df[df["Age"] > 30]
  3. # 查询 IT 部门的员工
  4. df[df["Department"] == "IT"]
  5. # 查询 Age 大于 30 且 Salary 大于 7000 的员工
  6. df[(df["Age"] > 30) & (df["Salary"] > 7000)]
复制代码
1.3 利用 query() 方法

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

2. 数据编辑(Updating & Modifying)

2.1 修改某列数据

  1. # 调整所有工资增加 10%
  2. df["Salary"] = df["Salary"] * 1.1
复制代码
2.2 修改某个单元格

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

  1. df["Bonus"] = df["Salary"] * 0.1
复制代码
2.4 删除行/列

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

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

3. 数据分类(Categorization)

3.1 按种别转换数据

  1. # 将 'Department' 转换为分类数据类型
  2. df["Department"] = df["Department"].astype("category")
复制代码
3.2 利用 cut() 举行数值分箱

  1. df["Age Group"] = pd.cut(df["Age"], bins=[20, 30, 40, 50], labels=["Young", "Middle-aged", "Senior"])
复制代码
3.3 利用 map() 转换数据

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

4. 数据汇总(Aggregation & Grouping)

4.1 统计汇总

  1. df.describe()  # 统计数值列的基本信息
  2. df["Salary"].sum()  # 计算总工资
  3. df["Salary"].mean()  # 计算平均工资
  4. df["Salary"].median()  # 计算工资中位数
  5. df["Salary"].std()  # 计算工资标准差
复制代码
4.2 按种别分组聚合

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

  1. 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 数据,提高数据处置处罚服从!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表