Pandas 是什么

发布于:2025-03-27 ⋅ 阅读:(29) ⋅ 点赞:(0)

一、Pandas 是什么?

  • 核心功能:快速处理和分析表格数据(类似 Excel,但更强大)
  • 核心数据结构
    • ​**Series**:一维数组(带标签的列)
    • ​**DataFrame**:二维表格(多个 Series 的集合,类似 Excel 表格)

二、安装 Pandas

在命令行中输入(需提前安装 Python):


pip install pandas

三、快速上手

1. 导入 Pandas
import pandas as pd  # 约定俗成的缩写
2. 创建数据结构

① 创建 Series​(一列数据)

data = [10, 20, 30, 40]
s = pd.Series(data, name="年龄")
print(s)

输出:

0    10
1    20
2    30
3    40
Name: 年龄, dtype: int64

② 创建 DataFrame​(表格)

data = {
    "姓名": ["张三", "李四", "王五"],
    "年龄": [25, 30, 28],
    "城市": ["北京", "上海", "广州"]
}
df = pd.DataFrame(data)
print(df)

输出:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  28  广州

四、核心操作大全

1. 数据读取/写入
# 读取 CSV 文件
df = pd.read_csv("data.csv")

# 读取 Excel 文件
df = pd.read_excel("data.xlsx")

# 保存为 CSV
df.to_csv("new_data.csv", index=False)  # 不保存行索引
2. 查看数据
df.head(3)    # 查看前3行
df.tail()     # 查看后5行(默认)
df.shape      # 显示行数和列数 (行, 列)
df.info()     # 查看数据类型和内存信息
df.describe() # 显示数值列的统计摘要(均值、标准差等)
3. 数据选择

① 选择列

df["姓名"]       # 选择单列 → 返回 Series
df[["姓名", "年龄"]]  # 选择多列 → 返回 DataFrame

② 选择行

df.loc[0]          # 按标签选择第一行
df.iloc[0:2]       # 按位置选择前两行(0和1行)
df[df["年龄"] > 25]  # 条件筛选:年龄大于25的行
4. 数据清洗

① 处理缺失值

df.dropna()   # 删除包含缺失值的行
df.fillna(0)  # 用0填充缺失值

② 删除重复值

df.drop_duplicates()

③ 修改数据

df["年龄"] = df["年龄"] + 1  # 年龄列全部+1
df.replace("北京", "Beijing")  # 替换特定值
5. 数据处理

① 排序

df.sort_values("年龄", ascending=False)  # 按年龄降序排序

② 分组聚合

df.groupby("城市")["年龄"].mean()  # 按城市分组,计算平均年龄

③ 合并数据

df1 = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
df2 = pd.DataFrame({"A": [5, 6], "B": [7, 8]})
pd.concat([df1, df2])  # 纵向合并

五、数据可视化(需安装 matplotlib)

df["年龄"].plot(kind="hist")  # 绘制年龄分布直方图
df.plot(x="姓名", y="年龄", kind="bar")  # 柱状图

六、实战案例:销售数据分析

假设有一个 sales.csv 文件,包含以下字段:

  • 日期 | 产品 | 销量 | 单价
# 读取数据
df = pd.read_csv("sales.csv")

# 计算总销售额
df["销售额"] = df["销量"] * df["单价"]

# 按产品汇总
result = df.groupby("产品")["销售额"].sum()

# 输出结果
print(result.sort_values(ascending=False))