Pandas DataFrame 基础操作与数据处理实战

许南星
许南星
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍Pandas中DataFrame的核心用法,涵盖从创建、索引选取、行列删除到数学运算与Groupby聚合的完整流程。通过具体代码示例,解析如何处理多维数据、执行映射与聚合操作,并演示导出CSV文件的注意事项,助力高效进行Python数据分析。

前言

Pandas作为Python生态中开源的数据分析库,其提供的DataFrame数据结构极大地简化了数据分析过程中的复杂操作。

1. 基本使用:

创建DataFrame。DataFrame本质上是一张二维表格,可以将其类比为Excel电子表格或SQL数据库表。

需要注意的是,Excel 2007及后续版本的最大行数为1048576,最大列数为16384。若数据规模超过此限制,Excel会提示“此文本包含多行文本,无法放置在一个工作表中”。

相比之下,Pandas处理千万级数据轻松自如,且后续将展示其比SQL具备更强的表达力,能执行更多复杂操作且代码更简洁。尽管优势众多,实际掌握仍需动手编码实践。

首要任务是创建DataFrame,它支持多种创建方式:

  • 列表、序列(pandas.Series)或numpy.ndarray的字典
  • 二维numpy.ndarray
  • 其他DataFrame
  • 结构化记录(structured arrays)

其中,我最倾向于通过二维ndarray创建DataFrame,因为所需代码量最少:

import  pandas as pd
import  numpy as np
df = pd.DataFrame(np.random.randn( 3 , 4 ))
df
0 1 2 3
0 0.236175 - 0.394792 - 0.171866 0.304012
1 0.651926 0.989046 0.160389 0.482936
2 - 1.039824 0.401105 - 0.492714 - 1.220438

当然,你也可以从MySQL数据库或CSV文件中加载数据到DataFrame。

在DataFrame中,index用于标识行,column标识列,shape属性表示数据的维度。

# 获得行索引信息
df.index
# 获得列索引信息
df.columns
# 获得df的size
df.shape
# 获得df的行数
df.shape[0]
# 获得df的 列数
df.shape[1]
# 获得df中的值
df.values

通过describe方法,我们可以快速了解df中的数据概况:

df.describe()
0 1 2 3
count 3.000000 3.000000 3.000000 3.000000
mean - 0.050574 0.331786 - 0.168064 - 0.144496
std 0.881574 0.694518 0.326568 0.936077
min - 1.039824 - 0.394792 - 0.492714 - 1.220438
25 % - 0.401824 0.003156 - 0.332290 - 0.458213
50 % 0.236175 0.401105 - 0.171866 0.304012
75 % 0.444051 0.695076 - 0.005739 0.393474
max 0.651926 0.989046 0.160389 0.482936

2. 数据select, del, update。

按列名进行select:

df[ 0 ]
 
0 0.236175
1 0.651926
2 - 1.039824

按行数进行select:

df[: 3 ] #选取前3行

按索引进行select:

df.loc[ 0 ]
 
0 0.236175
1 - 0.394792
2 - 0.171866
3 0.304012

按行数和列数进行select:

df.iloc[ 3 ] #选取第3行
df.iloc[ 2 : 4 ] #选取第2到第3行
df.iloc[ 0 , 1 ] #选取第0行1列的元素
dat.iloc[: 2 , : 3 ] #选取第0行到第1行,第0列到第2列区域内的元素
df1.iloc[[1,3,5],[1,3]] #选取第1,3,5行,第1,3列区域内的元素

删除某列:

del df[0]
df
1 2 3
0 - 0.394792 - 0.171866 0.304012
1 0.989046 0.160389 0.482936
2 0.401105 - 0.492714 - 1.220438

删除某行:

5
df.drop(0)
 
1 2 3
1 0.989046 0.160389 0.482936
2 0.401105 - 0.492714 - 1.220438

3.运算。

基本运算:

df[ 4 ] = df[ 1 ] + df[ 2 ]
 
1 2 3 4
0 - 0.394792 - 0.171866 0.304012 - 0.566659
1 0.989046 0.160389 0.482936 1.149435
2 0.401105 - 0.492714 - 1.220438 - 0.091609

map运算,与Python内置的map函数类似:

df[ 4 ]. map ( int )
0 0
1 1
2 0

apply运算:

df. apply ( sum )
 
1 0.995359
2 - 0.504192
3 - 0.433489
4 0.491167

4. Group by 操作。

Pandas中的group by操作是我的最爱,无需将数据导入Excel或MySQL即可进行灵活的分组聚合,从而简化分析流程。

df[ 0 ] = [ 'A' , 'A' , 'B' ]
df
 
1 2 3 4 0
0 - 0.394792 - 0.171866 0.304012 - 0.566659 A
1 0.989046 0.160389 0.482936 1.149435 A
2 0.401105 - 0.492714 - 1.220438 - 0.091609 B
 
g = df.groupby([ 0 ])
 
g.size()
 
A 2
B 1
 
g. sum ()
 
1 2 3 4
0
A 0.594254 - 0.011478 0.786948 0.582776
B 0.401105 - 0.492714 - 1.220438 - 0.091609

5. 导出到csv文件

DataFrame可使用to_csv方法便捷地导出为CSV文件。若数据包含中文,通常需指定encoding为“utf-8”,否则程序可能因无法识别字符串而抛出异常。设置index为False表示不导出DataFrame的索引数据。

df.to_csv(file_path, encoding='utf-8', index=False)
df.to_csv(file_path, index=False)

总结

到此这篇关于Pandas中DataFrame操作的文章就介绍到这了,更多相关Pandas DataFrame操作内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。