【数据发掘】Pandas之DataFrame
https://i-blog.csdnimg.cn/direct/6315e23827e84e1b95599841b6e33b52.png在 Pandas 中,DataFrame 提供了丰富的数据操纵功能,包括 查询、编辑、分类和汇总。
1. 数据查询(Filtering & Querying)
1.1 按索引或列名查询
import pandas as pd
data = {
"ID": ,
"Name": ["Alice", "Bob", "Charlie", "David", "Eva"],
"Age": ,
"Salary": ,
"Department": ["HR", "IT", "Finance", "IT", "HR"]
}
df = pd.DataFrame(data)
# 查询某一列
print(df["Age"])# 返回 Series
print(df[["Name", "Salary"]])# 返回 DataFrame
# 查询某一行(基于索引)
print(df.loc)# 按标签索引
print(df.iloc)# 按行号索引
1.2 按条件查询
# 查询 Age > 30 的员工
df > 30]
# 查询 IT 部门的员工
df == "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 = 6500# 使用 `at`(基于标签)
df.iat = 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=, 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 > 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 数据,提高数据处置处罚服从!
页:
[1]