跳转至

Pandas DataFrame

概念与用途

DataFrame 是行列均有标签的二维表,每列可有独立数据类型。它是读取文件、关系连接、特征工程和统计报表的主要对象。

核心 API

  • 构造与检查:pd.DataFrame、shape、columns、dtypes、info。
  • 选择与赋值:loc、iloc、assign、列索引。
  • 汇总:describe、agg、groupby。
  • 结构操作:rename、drop、set_index、reset_index。

可运行示例

import pandas as pd

df = pd.DataFrame({"name": ["Ada", "Lin"], "score": [88, 95]})
result = (
    df.assign(passed=df["score"].ge(90))
      .rename(columns={"score": "final_score"})
)
print(result.loc[:, ["name", "final_score", "passed"]])

示例二:Series 输入按索引对齐

import pandas as pd

scores = pd.Series({"u2": 80, "u1": 95})
teams = pd.Series({"u1": "A", "u2": "B"})
df = pd.DataFrame({"score": scores, "team": teams})
df["rank"] = df.groupby("team")["score"].rank(ascending=False)
print(df)

构造器把两个 Series 按标签对齐,而不是按原顺序拼接。字典中的普通等长列表则按位置构造;混用输入形式前应先明确期望索引。

参数、返回与复制

assign、rename、drop 默认返回新 DataFrame,inplace=True 返回 None 且不保证节省内存。布尔 Series 掩码会按索引对齐。Copy-on-Write 行为与版本和配置有关,代码不应依赖切片必然是视图或副本。

注意事项

df["col"] 返回 Series,df[["col"]] 返回 DataFrame。链式赋值可能修改临时对象,应使用一次 loc 赋值或 assign。频繁逐列插入会造成内存碎片;批量构造列或一次 concat 更稳妥。业务表应明确主键而不是依赖默认 RangeIndex。