当前位置: 首页
编程语言
Python数据分析 pandas中Series与DataFrame的常用属性及方法完整教程

Python数据分析 pandas中Series与DataFrame的常用属性及方法完整教程

热心网友 时间:2026-07-21
转载

Pandas中Series与DataFrame常用属性包括形状、大小、数值、索引、列名;常用方法有头部、尾部、唯一值、值计数、填充缺失值、删除缺失值、排序、分组、合并;数据更改通过索引赋值、添加删除行列实现;导入导出支持CSV、Excel、JSON等格式,是数据分析常用操作。

一、Series——pandas 核心数据结构

先从 pandas 中最基础的 Series 说起,它是整个库的基石,很多操作思路与 DataFrame 是相通的,掌握 Series 对后续学习至关重要。

1. 常用属性

下面列出几个你日常一定会用到的属性,建议先熟悉它们:

loc根据行索引标签获取指定行数据,属于 DataFrame 对象的索引方法
iloc根据行位置(整数序号)获取某行数据,同样属于 DataFrame 对象
dtype返回 Series 中元素的数据类型(如 int64、float64 等)
T返回转置结果(对一维 Series 效果有限,但 DataFrame 中常用)
shape返回 Series 的维度信息,即行数(因为是一维结构)
size返回 Series 中元素的总个数
values以 NumPy 数组形式返回底层数值
index返回索引对象,功能类似于字典的 keys() 方法
name返回 Series 的名称属性(创建时指定)

2. 创建方式

创建 Series 有多种常用方法,最常用的包括以下几种:

1. 通过 NumPy 数组创建

arr = np.array([1,2,3,4,5])
s1 = pd.Series(arr)

2. 直接传入列表

s = pd.Series([1,2,3,4,5])

3. 指定自定义索引

s3 = pd.Series([1,2,3,4,5], index=['a','b','c','d','e'])

4. 通过元组传入

s4 = pd.Series((1,3,5),index=['a','b','c'])

5. 通过字典传入

s5 = pd.Series({'a':1,'b':2,'c':3})

3. 常用方法

这些方法几乎每天都会用到,特别是 head() / tail()value_counts()

head(n) / tail(n)获取前 n 行 / 后 n 行数据(默认 5 行)
unique()返回去重后的唯一值数组
nunique()返回唯一值的数量
value_counts()计算每个值的出现频率
isnull() / notnull()检测缺失值(返回布尔 Series)
fillna(value)用指定值填充缺失值
dropna()删除含有缺失值的元素
astype(dtype)转换 Series 的数据类型
apply(func)对每个元素依次应用自定义函数
sort_values() / sort_index()按值或索引进行排序

二、DataFrame——表格数据处理核心

DataFrame 是 pandas 的“主将”,表格数据基本都靠它操作。下面列出最常用的属性和方法:

1. 常用属性

values返回底层二维数组(NumPy 数组)
columns返回列标签(列名)
index返回行索引
dtypes返回各列的数据类型
shape返回形状(行数,列数)
size返回元素总数(行数 × 列数)
T返回转置后的 DataFrame

2. 常用方法

head(n) / tail(n)查看前 n 行 / 后 n 行数据
info()查看基本信息(非空值数量、数据类型等)
describe()生成描述性统计(计数、均值、标准差等)
drop(columns, axis=1)删除指定列
drop(index, axis=0)删除指定行
fillna(value)填充缺失值
dropna()删除含有缺失值的行或列
groupby(by)按指定列分组
merge(other)与另一个 DataFrame 合并(类似 SQL 的 JOIN)
pivot_table()创建透视表
sort_values(by)按指定列排序
sort_index()按索引排序
apply(func, axis)沿指定轴应用函数
applymap(func)对每个元素应用函数(已过时,推荐改用 mapapply
corr()计算列与列之间的相关系数

三、修改 Series 和 DataFrame 的方法

数据不是一成不变的,学会增删改是基本功。下面分两部分讲解。

1. 修改 Series

根据索引直接赋值

s = pd.Series([1,2,3], index=['a','b','c'])
s['b'] = 10  # 修改单个值
s[['a','c']] = [20, 30]  # 修改多个值

添加元素

s['d'] = 40  # 添加单个元素
s = s.append(pd.Series([50], index=['e']))  # 添加多个元素(注意:append 在新版本中已过时)

删除元素

s = s.drop('e')  # 删除指定索引的元素

2. 修改 DataFrame

添加列

s = s.drop('e')  # 删除指定索引的元素

修改列名

df.rename(columns={'old_name': 'new_name'}, inplace=True)
df.columns = ['col1', 'col2', 'col3']  # 批量修改

修改值

df.loc[0, 'col1'] = 100  # 通过标签修改
df.iloc[1, 2] = 200  # 通过位置修改

添加行

new_row = pd.DataFrame([[1,2,3]], columns=df.columns)
df = pd.concat([df, new_row], ignore_index=True)  # 使用 concat 添加行

删除行列

df.drop(columns=['col1'], inplace=True)  # 删除列
df.drop(index=[0,1], inplace=True)  # 删除行

四、数据导入与导出

与外部文件打交道是日常工作中最常见的场景,pandas 为数据读写提供了非常全面的支持。

1. 导入数据

从 CSV 文件导入

df = pd.read_csv('file.csv')  # 基本用法
df = pd.read_csv('file.csv', sep=';', header=0, index_col=0)  # 自定义分隔符、表头、索引列

从 Excel 文件导入

df = pd.read_excel('file.xlsx')  # 读取第一个工作表
df = pd.read_excel('file.xlsx', sheet_name='Sheet2')  # 指定工作表

从数据库导入

import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql_query('SELECT * FROM table', conn)

从 JSON 导入

df = pd.read_json('file.json')

2. 导出数据

导出为 CSV

df.to_csv('output.csv', index=False)  # index=False 表示不导出索引

导出为 Excel

df.to_excel('output.xlsx', sheet_name='Data', index=False)

导出为 JSON

df.to_json('output.json', orient='records')

导出到数据库

df.to_sql('table_name', conn, if_exists='replace', index=False)

五、实用扩展技巧

最后补充几个实战中经常遇到的细节,帮助你更高效地使用 pandas。

1. inplace 参数:很多修改方法(如 drop()fillna())都包含这个参数,设为 True 时直接修改原对象,不返回新对象;默认 False,返回修改后的副本。建议新手先用默认值,避免不小心误改原始数据。

pandas中Series与DataFrame的常用属性及方法

2. 链式操作:pandas 支持链式调用,写起来非常简洁:

df = pd.read_csv('data.csv').dropna().rename(columns=str.lower).sort_values('date')

3. 数据类型转换:使用 astype() 时要注意兼容性,例如字符串不能直接转为整数。可以先尝试 pd.to_numeric()

df['col'] = pd.to_numeric(df['col'], errors='coerce')  # 无法转换的值变为 NaN

4. 大型数据集处理:读取大文件时使用 chunksize 分块读取,避免内存溢出:

for chunk in pd.read_csv('large_file.csv', chunksize=1000):
    process(chunk)

5. 缺失值处理:除了 fillna()dropna()interpolate() 插值法在时间序列数据中特别实用。

6. 迭代效率:尽量避免用 for 循环遍历 DataFrame,优先使用 apply()map() 等向量化操作;如果必须逐行遍历,用 itertuples() 会比 iterrows() 快很多。

来源:https://www.jb51.net/python/367778hra.htm

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
FileZilla断点续传设置与操作指南

FileZilla断点续传设置与操作指南

FileZilla支持断点续传,需客户端与服务器均开启REST命令。设置中确保启用断点续传及继续传输选项。中断后自动或手动从断点恢复。注意服务器支持、传输模式匹配及文件完整性校验。

时间:2026-07-25 22:29
Debian系统C++编译器位置查找方法

Debian系统C++编译器位置查找方法

在Debian系统中,通过apt安装的C++编译器g++默认位于 usr bin g++,可使用which或whereis命令验证路径。g++属于build-essential软件包,若未安装则需执行sudoaptinstallbuild-essential。该包还包含gcc、make等编译工具链,g++是GNUC++编译器,实际是符号链接指向具体版本,验证

时间:2026-07-25 22:29
Debian系统安装C++环境的方法

Debian系统安装C++环境的方法

在Debian系统安装C++开发环境:先sudoaptupdate更新包列表,再sudoaptinstallbuild-essential安装编译工具链,或单独安装g++。用g++--version验证。可选安装VSCode、GDB、CMake等工具并配置默认编译器版本。

时间:2026-07-25 22:29
Debian系统C++开发环境配置指南

Debian系统C++开发环境配置指南

在Debian系统中,先执行aptupdate更新软件包列表,再安装build-essential元包即可获得GCC、G++、Make和GDB。通过运行g++--version命令验证编译器安装成功。可选安装VisualStudioCode、CLion等编辑器及CMake构建工具,并编写一个简单的HelloWorld程序,使用g++编译运行以验证环境配置正确

时间:2026-07-25 22:29
通过cpustat工具查看CPU状态的具体方法与详细步骤

通过cpustat工具查看CPU状态的具体方法与详细步骤

cpustat是sysstat包中的CPU监控工具,可按固定间隔输出带时间戳的CPU使用率统计。安装后运行cpustat即可实时显示各核心信息,常用指标包括%usr、%sys、%iowait、%steal和%idle,用于定位用户态、内核态或I O瓶颈。高级选项-c可显示单核统计,-m可同时查看内存使用,适合脚本采集和性能分析。

时间:2026-07-25 22:18
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜