Python pandas DataFrame创建与基础操作详解

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍Python中pandas库创建DataFrame的多种方法,包括从字典和列表构建数据框、指定列名与顺序、修改列名以及生成随机整数数据。同时演示如何使用时间序列作为索引,并简要提及类SQL操作功能,帮助开发者快速掌握DataFrame的基础构建技巧。

从字典和列表创建DataFrame

首先,可以通过字典结构直接创建DataFrame。将包含列表值的字典传入pd.DataFrame()构造函数,即可生成对应的数据框对象。


>>> import pandas as pd
>>> dict1 = {'col1':[1,2,5,7],'col2':['a','b','c','d']}
>>> df = pd.DataFrame(dict1)
>>> df
  col1 col2
0   1  a
1   2  b
2   5  c
3   7  d

其次,利用列表创建DataFrame时,可先将多个列表组合成字典,再转换为DataFrame。这种方式适用于已知各列数据为独立列表的场景。


>>> lista = [1,2,5,7]
>>> listb = ['a','b','c','d']
>>> df = pd.DataFrame({'col1':lista,'col2':listb})
>>> df
  col1 col2
0   1  a
1   2  b
2   5  c
3   7  d
 

此外,还可以直接从列表列表创建DataFrame,并通过data参数指定数据内容,通过columns参数明确指定列名。这种方式结构清晰,适合结构化数据的初始化。


>>> a = ['001','zhangsan','M']
>>> b = ['002','lisi','F']
>>> c = ['003','wangwu','M']
>>> df = pandas.DataFrame(data=[a,b,c],columns=['id','name','sex'])
>>> df
  id   name sex
0 001 zhangsan  M
1 002   lisi  F
2 003  wangwu  M

修改列名与调整列顺序

创建完成后,若需修改列名,可直接对df.columns属性赋值新的列表。例如将原有的['id','name','sex']更改为['Id','Name','Sex'],实现大小写或其他命名规范的调整。


>>> df.columns = ['Id','Name','Sex']
>>> df
  Id   Name Sex
0 001 zhangsan  M
1 002   lisi  F
2 003  wangwu  M

在调整列名后,有时还需调整列的显示顺序或重置列编号从1开始。具体实现可参考相关技术文章,如https://www.jb51.net/article/163644.htm中提供的解决方案。

生成随机数据与时间序列索引

对于需要测试或模拟数据的场景,可以使用pandas结合numpy随机生成指定形状的数据。例如生成10行4列的整数型DataFrame,数据范围可设定为0到100之间。


>>> import pandas
>>> import numpy
>>> df = pandas.DataFrame(numpy.random.randint(0,100,size=(10, 4)), columns=list('ABCD')) # 0,100指定随机数为0到100之间(包括0,不包括100),size = (10,4)指定数据为10行4列,column指定列名
>>> df
  A  B  C  D
0 67 28 37 66
1 21 27 43 37
2 73 54 98 85
3 40 78  4 93
4 99 60 63 16
5 48 46 24 61
6 59 52 62 28
7 20 74 36 64
8 14 13 46 60
9 18 44 70 36

除了默认的数字索引,还可以使用时间序列作为DataFrame的索引(index)。通过pandas.date_range()生成日期序列,并将其赋值给df.index,可实现按时间排序的数据展示。


>>> df # 原本index为自动生成的0~9
  A  B  C  D
0 31 25 45 67
1 62 12 61 88
2 79 36 20 97
3 26 57 50 44
4 24 12 50  1
5  4 61 99 62
6 40 47 52 27
7 83 66 71  4
8 58 59 25 62
9 38 81 60  8
>>> import pandas
>>> dates = pandas.date_range('20180121',periods=10)
>>> dates # 从20180121开始,共10天
DatetimeIndex(['2018-01-21', '2018-01-22', '2018-01-23', '2018-01-24',
        '2018-01-25', '2018-01-26', '2018-01-27', '2018-01-28',
        '2018-01-29', '2018-01-30'],
       dtype='datetime64[ns]', freq='D')
>>> df.index = dates # 将dates赋值给index
>>> df
       A  B  C  D
2018-01-21 31 25 45 67
2018-01-22 62 12 61 88
2018-01-23 79 36 20 97
2018-01-24 26 57 50 44
2018-01-25 24 12 50  1
2018-01-26  4 61 99 62
2018-01-27 40 47 52 27
2018-01-28 83 66 71  4
2018-01-29 58 59 25 62
2018-01-30 38 81 60  8

类SQL操作与官方文档参考

pandas DataFrame支持类似SQL的查询和操作语法,这使得熟悉SQL的用户能更快速上手Python数据处理。官方文档提供了详细的对比说明,帮助理解两者之间的映射关系。

关于pandas与SQL操作的详细对比,官方文档提供了专门的章节进行阐述,涵盖了常见操作如SELECT、WHERE、JOIN等在pandas中的对应实现方式。

官方文档链接为https://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html,用户可访问该页面获取更深入的API参考和示例代码。

以上内容涵盖了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 算法库。