1. 创建 DataFrame
import pandas as pd
# 从字典创建
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "Paris", "London"]
}
df = pd.DataFrame(data)
2. 基础操作
操作 | 代码示例 |
---|---|
查看前5行 | df.head() |
查看后3行 | df.tail(3) |
获取维度 | df.shape → (行数, 列数) |
列名列表 | df.columns |
数据类型 | df.dtypes |
统计摘要 | df.describe() |
3. 数据选择
# 选择列(返回 Series)
ages = df["Age"]
# 选择多列(返回 DataFrame)
name_city = df[["Name", "City"]]
# 按行索引选择行
row_1 = df.iloc[0] # 第一行(索引从0开始)
row_last = df.iloc[-1] # 最后一行
# 按条件筛选
young_people = df[df["Age"] < 30] # 年龄<30的行
4. 数据修改
# 新增列
df["Salary"] = [70000, 80000, 90000]
# 修改列
df["Age"] = df["Age"] + 1 # 所有人年龄+1
# 重命名列
df = df.rename(columns={"City": "Location"})
5. 处理缺失值
# 检查缺失值
df.isnull().sum()
# 删除含缺失值的行
df_clean = df.dropna()
# 填充缺失值
df_filled = df.fillna(0) # 用0填充
6. 分组聚合
# 按城市分组,计算平均年龄
df.groupby("City")["Age"].mean()
# 多维度聚合
df.groupby("City").agg(
{"Age": "mean", "Salary": ["min", "max"]}
)
7. 合并 DataFrame
# 合并两个 DataFrame(类似 SQL JOIN)
df2 = pd.DataFrame({"Name": ["Bob", "David"], "Department": ["IT", "HR"]})
merged = pd.merge(df, df2, on="Name", how="left") # 左连接
8. 输入/输出数据
# 读取 CSV
df = pd.read_csv("data.csv")
# 写入 CSV
df.to_csv("output.csv", index=False)
# 读取 Excel
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
9. 进阶技巧
# 应用函数
df["Age_Group"] = df["Age"].apply(lambda x: "Young" if x < 30 else "Senior")
# 时间序列处理
df["Date"] = pd.to_datetime(df["Date"])
df["Year"] = df["Date"].dt.year
# 透视表
pivot = pd.pivot_table(df, values="Salary", index="City", columns="Age_Group")