对于Pandas的简单认识和基本操作的练习 对于函数以及相关参数进行总结和介绍

一 介绍 

Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的库。
Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于 Excel 表格)。
Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。

主要数据结构

Pandas主要引入了两种新的数据结构:DataFrame 和 Series。
Series:类似于一维数组或列表,是由一组数据以及与之相关的数据标签(索引)构成。Series 可以看作是 DataFrame 中的一列,也可以是单独存在的一维数据结构。
DataFrame:类似于一个二维表格,是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格,它既有行索引也有列索引,因此可以方便地进行行列选择、过滤、合并等操作。

常用函数和参数介绍

📋基本数据结构

类别 方法/函数 主要参数 使用场景 示例代码
​创建数据结构​ pd.DataFrame() data: 字典/列表数据
columns: 列名
index: 行索引
创建数据框 df = pd.DataFrame({'A': [1,2], 'B': ['x','y']})
​数据查看​ head()/tail() n: 显示行数 查看头尾数据 df.head(3)
​信息概览​ info() memory_usage: 显示内存 数据结构概况 df.info()
​描述统计​ describe() include: 包含数据类型
percentiles: 百分位数
统计摘要 df.describe(include='all')
​数据选取​ loc[] row_indexercol_indexer 按标签选取 df.loc[1:5, ['A','B']]
​数据选取​ iloc[] row_indexercol_indexer 按位置选取 df.iloc[1:5, 0:2]
​条件筛选​ query() expr: 查询表达式 复杂条件筛选 df.query('A > 5 & B == "x"')
​排序​ sort_values() by: 排序列
ascending: 升降序
值排序 df.sort_values(by='A', ascending=False)

🔧数据处理与清洗

类别 方法/函数 主要参数 使用场景 示例代码
​缺失值处理​ isna() - 检测缺失值 df.isna().sum()
​缺失值处理​ fillna() value: 填充值
method: 填充方式
填充缺失值 df.fillna(0)
​缺失值处理​ dropna() axis: 轴
how: 条件
删除缺失值 df.dropna(how='any')
​重复值处理​ duplicated() subset: 列子集 检测重复值 df.duplicated()
​重复值处理​ drop_duplicates() subset: 列子集
keep: 保留策略
删除重复值 df.drop_duplicates()
​数据转换​ astype() dtype: 目标类型 数据类型转换 df['A'] = df['A'].astype(float)
​应用函数​ apply() func: 应用函数 行列自定义操作 df.apply(lambda x: x**2)
​分箱离散化​ cut() x: 分箱数据
bins: 箱子数
连续值离散化 pd.cut(df['A'], bins=5)
​数据替换​ replace() to_replace: 被替换值
value: 替换值
值替换 df.replace({'x': 'y'})

🔍数据聚合与分组

类别 方法/函数 主要参数 使用场景 示例代码
​分组聚合​ groupby() by: 分组键
as_index: 分组键作索引
创建分组对象 df.groupby('B')
​聚合计算​ agg() func: 聚合函数 应用聚合函数 df.groupby('B')['A'].agg(['mean', 'sum'])
​透视表​ pivot_table() values: 值列
index: 行分组
columns: 列分组
创建透视表 pd.pivot_table(df, values='A', index='B', aggfunc='mean')
​交叉表​ crosstab() index: 行类别
columns: 列类别
频率交叉表 pd.crosstab(df['B'], df['C'])
​合并数据​ merge() left/right: 合并对象
on: 键
SQL风格连接 pd.merge(df1, df2, on='key')
​连接数据​ concat() objs: 对象列表
axis: 连接轴
堆叠数据 pd.concat([df1, df2], axis=1)

📅 时间序列处理

类别 方法/函数 主要参数 使用场景 示例代码
​转换时间戳​ to_datetime() arg: 时间数据
format: 时间格式
转换为时间戳 pd.to_datetime(df['date'])
​时间序列重采样​ resample() rule: 频率规则 时间序列采样 df.resample('M').mean()
​移动窗口​ rolling() window: 窗口大小 滚动计算 df['A'].rolling(7).mean()
​时间移位​ shift() periods: 移动步数 滞后/超前 df['A'].shift(1)

💾 I/O 操作

类别 方法/函数 主要参数 使用场景 示例代码
​读取CSV​ read_csv() filepath: 路径
sep: 分隔符
index_col: 索引列
读取CSV文件 pd.read_csv('data.csv', sep=';')
​写入CSV​ to_csv() path: 路径
index: 是否保存索引
导出CSV df.to_csv('output.csv', index=False)
​Excel读取​ read_excel() io: Excel路径
sheet_name: 工作表
读取Excel pd.read_excel('data.xlsx', sheet_name='Sheet1')
​Excel写入​ to_excel() excel_writer: Excel路径 导出Excel df.to_excel('output.xlsx')

二 使用

 Series

索引:每一个Series都有一个索引,可以是整数,字符串,日期等类型,如果没有显示指定索引,Pandas会默认自动创建一个从0开始的整数索引

数据类型:Series可以容纳不同数据类型的元素,包括整数,浮点数,字符串等

# series
#创建
#可以通过pd.Series()构造器创建 也可以传递一个数据数据加一个可选的索引数组

import pandas as pd
a = [1,2,3,4]
b = pd.Series(a)

time = ['23年','24年','25年','26年']
date = [100,200,300,400]
c = pd.Series(date,time)
print(c)


sites = {1:"0012",2:"0013",3:"0014",4:"0015"}
d = pd.Series(sites)
print(d)

var = pd.Series(sites,index=[1,3]) # 按照索引去获取数组
print(var)

DataFrame

列和行:DataFrame 由多个列组成,每一列都有一个名称,可以看作一个Series 同时还存在有行索引

二维结构:DataFrame 是一个二维表格 具有行和列 可以视为多个Series对象组成的字典

列的数据类型:不同的列可以包含不同的数据类型 例如整数 浮点型 字符串

 创建方式 

import pandas as pd
# 字典嵌套列表创建
sites = {"web_name":["Google","Baidu","SH"],"age":[1,3,9]}
var = pd.DataFrame(sites)
var
import pandas as pd
# 使用Series创建
data = {
    "name":pd.Series(["一","二","三"]),
    "age":pd.Series([21,22,23]),
    "money":pd.Series([21.2,22.2,23.2])
}
data = pd.DataFrame(data)
data

 文件处理 

import pandas as pd
# csv数据读取
gender = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
gender
import pandas as pd
# JSON数据读取
JSON_Test = pd.read_json(r"D:\Study Note\Python_note\Pandas\test.json")
JSON_Test

 保存为文件

import pandas as pd

# 数据
data = {
    "name":pd.Series(["张三","李四","王五"]),
    "age":pd.Series([21,22,23]),
    "money":pd.Series([21.2,22.2,23.2])
}

# 将数据转换为DataFrame
data = pd.DataFrame(data)

# 将DATa Frame写入Excel文件中
data.to_excel('test.xlsx',index=False)

print("Excel文件生成成功")

常用函数

函数 用法
pd.merge() 实现数据合并
pd.concat() 将多个数据框沿着某个轴进行连接
loc[]和iloc[] 对数据进行索引和选择
drop() 删除某些列或行
isnull() 检查失值并使用
fillna() 填充缺失值
sort_values() 排序
import pandas as pd
df = pd.read_csv(r"D:\Study Note\Python_note\Pandas\test.csv")
# df.head()

# 设置编号 方便筛查
df.set_index('PassengerId',inplace=True)

# 获取单个值
a = df.loc[900,'Name']

# 获取一个Series
b = df.loc[900,['Sex','Age']]

# 得到DataFrame
c = df.loc[[896,897,900],["Name","Sex","Age"]]

# 行列按区间查询
d = df.loc[896: 905,"Name":"Age"]

# 布尔查询
f = df.loc[df["Age"] < 18,:]

# 条件查询
g = df.loc[(df["Age"]<=30) & (df["Age"]>=18) & (df["Sex"] == "male"),:]

# 新增列查询
h = df.loc[:,"Year"] = df["Age"] +  2025
df.head()
# 统计函数
# 查看单个Series的数据
df["Age"].mean()

# 最大值
df["Age"].max()

# 最小值
df["Age"].min()

# 按值计数
df["Sex"].value_counts()

# 去重
df["Age"].unique()

# 缺失值处理
stu = pd.read_excel(r"D:\Study Note\Python_note\Pandas\test.xlsx",skiprows = 2)

# 检查空值
stu.isnull()
stu["name"].notnull()

# 排序
df2 = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
df2.sort_values("Age",ascending=False)

 学习时间 2025年07月12日

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐