Python Pandas基础语法与核心知识详解

一、Pandas简介与安装

Pandas是Python数据分析的核心库,基于NumPy构建,提供Series(一维)和DataFrame(二维)两种核心数据结构,支持数据清洗、统计分析、文件读写等操作。其核心优势在于处理结构化数据的高效性与灵活性。

安装方法:


python

通过pip安装(推荐)

pip install pandas

通过清华镜像加速安装

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

二、核心数据结构

1. Series(一维数组)


- 定义:带索引的一维数组,可存储任意数据类型(整数、字符串、浮点数等)。

- 创建方式:

import pandas as pd

import numpy as np

  # 通过列表创建

  s1 = pd.Series([1, 3, 5, np.nan])  # NaN表示缺失值


  # 通过字典创建(字典键作为索引)

  s2 = pd.Series({'a': 10, 'b': 20, 'c': 30})


  # 通过NumPy数组创建

arr = np.array([10, 20, 30])

s3 = pd.Series(arr, index=['x', 'y', 'z'])

- 常用属性:

  - s.values:获取数据数组(NumPy格式)。

  - s.index:查看索引(支持自定义标签如字符串)。

  - s.dtype:数据类型(如`int64`或`object`)。

2. DataFrame(二维表格)

- 定义:二维表格型数据结构,类似Excel表格,每列可存储不同数据类型。

- 创建方式:

  # 通过字典创建(键为列名,值为列表)

  data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}

  df = pd.DataFrame(data, index=['row1', 'row2'])

  # 通过嵌套列表创建

data = [['Alice', 25], ['Bob', 30]]

df = pd.DataFrame(data, columns=['Name', 'Age'])


  # 通过NumPy二维数组创建

arr = np.array([[1, 2], [3, 4]])

df = pd.DataFrame(arr, columns=['A', 'B'])

- 常用属性:

  - df.columns:查看列名,支持重命名(`df.columns = ['新列名1', '新列名2']`)。

  - df.shape:返回维度(行数, 列数)。

  - df.T:转置表格(行列互换)。

三、数据操作与语法

1. 数据筛选

- 按列筛选:

  df['Name']          # 获取单列(返回Series)

  df[['Name', 'Age']] # 获取多列(返回DataFrame)

- 按行筛选:

  # 标签索引(loc)

  df.loc['row1']            # 获取单行

  df.loc[['row1', 'row2']]  # 获取多行


# 位置索引(iloc)

  df.iloc[0]          # 获取第一行

  df.iloc[0:2]        # 获取前两行(含头不含尾)


  # 布尔索引

  df[df['Age'] > 25]  # 筛选年龄大于25的行

2. 数据处理

- 类型转换:

  df['Age'] = df['Age'].astype(float)        # 转为浮点型

  df['Date'] = pd.to_datetime(df['Date'])    # 字符串转日期

- 缺失值处理:

df.dropna()        # 删除含缺失值的行

df.fillna(0)        # 用0填充缺失值

df['列名'].fillna(df['列名'].mean())  # 用均值填充

- 删除行列:

df.drop('Age', axis=1)      # 删除列

df.drop(['row1', 'row2'])    # 删除行

3. 数据聚合与统计

- 分组统计:

  grouped = df.groupby('班级')

  grouped['分数'].mean()      # 按班级计算平均分


- 描述性统计:

  df.describe()      # 输出各列的统计摘要(均值、标准差等)

  df['分数'].max()    # 最大值

  df.corr()          # 计算列之间的相关系数矩阵

四、文件读写

1. 读取数据

# 读取CSV文件

df = pd.read_csv('data.csv', encoding='utf-8')

# 读取Excel文件

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 读取无列名的TXT文件

df = pd.read_table('data.txt', header=None)

2. 保存数据

df.to_csv('output.csv', index=False)    # 不保存索引

df.to_excel('output.xlsx', sheet_name='Results')

五、实战案例:学生成绩分析

# 创建数据

data = {

    '姓名': ['张三', '李四', '王五'],

    '班级': ['1班', '1班', '2班'],

    '分数': [90, 85, 78]

}

df = pd.DataFrame(data)

# 按班级计算平均分

avg_score = df.groupby('班级')['分数'].mean()

print(avg_score)

```

**输出**:

```

班级

1班    87.5

2班    78.0

总结

Pandas的核心在于灵活处理结构化数据,从基础操作(如数据筛选、类型转换)到高级分析(如分组聚合、透视表),需通过实际项目练习巩固。建议结合代码示例与官方文档,逐步掌握数据清洗、合并、可视化等全流程技能。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容