在 Pandas 中,DataFrame
提供了丰富的数据操作功能,包括 查询、编辑、分类和汇总。
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]) # 按行号索引
# 查询 Age > 30 的员工
df[df["Age"] > 30]
# 查询 IT 部门的员工
df[df["Department"] == "IT"]
# 查询 Age 大于 30 且 Salary 大于 7000 的员工
df[(df["Age"] > 30) & (df["Salary"] > 7000)]
df.query("Age > 30 & Salary > 7000")
# 调整所有工资增加 10%
df["Salary"] = df["Salary"] * 1.1
df.at[2, "Salary"] = 6500 # 使用 `at`(基于标签)
df.iat[2, 3] = 6500 # 使用 `iat`(基于整数索引)
df["Bonus"] = df["Salary"] * 0.1
df.drop(columns=["Bonus"], inplace=True) # 删除列
df.drop(index=2, inplace=True) # 删除某行
df.rename(columns={"Salary": "Income"}, inplace=True)
# 将 'Department' 转换为分类数据类型
df["Department"] = df["Department"].astype("category")
df["Age Group"] = pd.cut(df["Age"], bins=[20, 30, 40, 50], labels=["Young", "Middle-aged", "Senior"])
df["Department_Code"] = df["Department"].map({"HR": 1, "IT": 2, "Finance": 3})
df.describe() # 统计数值列的基本信息
df["Salary"].sum() # 计算总工资
df["Salary"].mean() # 计算平均工资
df["Salary"].median() # 计算工资中位数
df["Salary"].std() # 计算工资标准差
df.groupby("Department")["Salary"].mean() # 按部门计算平均工资
df.groupby("Department")["Salary"].agg(["mean", "max", "min"]) # 计算多个统计指标
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
数据,提高数据处理效率!