【Pandas】pandas DataFrame from_records

Pandas2.2 DataFrame

Serialization IO conversion

方法 描述
DataFrame.from_dict(data[, orient, dtype, ...]) 用于从 字典(dict) 构建 DataFrame 的类方法
DataFrame.from_records(data[, index, ...]) 用于将 结构化数据(如列表的元组、NumPy 结构化数组)转换为 DataFrame

pandas.DataFrame.from_records()

pandas.DataFrame.from_records(data, index=None, exclude=None, columns=None, coerce_float=False, nrows=None)pandas 提供的一个 类方法 ,用于将 结构化数据(如列表的元组、NumPy 结构化数组)转换为 DataFrame

它特别适用于从数据库查询结果、CSV 文件、JSON 数据等 记录式(record-style)数据 创建 DataFrame。


📌 方法签名
python 复制代码
pandas.DataFrame.from_records(data, index=None, exclude=None, columns=None, coerce_float=False, nrows=None)
参数说明:
参数 类型 描述
data sequence 或 iterable 一个可迭代对象,每个元素是一个序列或字典,代表一行数据
index list-like(可选) 指定行索引标签
exclude list(可选) 排除的字段名列表
columns list(可选) 指定列名顺序
coerce_float bool,默认 False 是否尝试将数值字符串自动转为浮点数
nrows int(可选) 读取的最大行数

✅ 示例及结果
示例 1:基本用法(从元组列表创建 DataFrame)
python 复制代码
import pandas as pd

# 元组列表,每行表示一条记录
data = [
    ('Alice', 25, 'Engineer'),
    ('Bob', 30, 'Manager'),
    ('Charlie', 35, 'Designer')
]

df = pd.DataFrame.from_records(data)
print(df)

输出:

复制代码
         0   1         2
0    Alice  25  Engineer
1      Bob  30   Manager
2  Charlie  35  Designer

默认情况下,列名是整数索引(0, 1, 2...),你可以通过 columns 指定列名。


示例 2:指定列名
python 复制代码
df = pd.DataFrame.from_records(data, columns=['Name', 'Age', 'Job'])
print(df)

输出:

复制代码
       Name  Age        Job
0     Alice   25   Engineer
1       Bob   30    Manager
2  Charlie   35   Designer

示例 3:使用 NumPy 结构化数组

如果你有 NumPy 的结构化数组,可以直接传入:

python 复制代码
import numpy as np

dtype = [('name', 'U10'), ('age', 'i4'), ('job', 'U10')]
data = np.array([('Alice', 25, 'Engineer'), ('Bob', 30, 'Manager')], dtype=dtype)

df = pd.DataFrame.from_records(data)
print(df)

输出:

复制代码
    name  age        job
0  Alice   25   Engineer
1    Bob   30    Manager

示例 4:指定索引列(index

你可以指定某一列为行索引:

python 复制代码
df = pd.DataFrame.from_records(data, index='name')
print(df)

输出:

复制代码
       age        job
name                
Alice   25   Engineer
Bob     30    Manager

示例 5:限制读取行数(nrows

只读取前 N 行数据:

python 复制代码
df = pd.DataFrame.from_records(data, columns=['Name', 'Age', 'Job'], nrows=1)
print(df)

输出:

复制代码
    Name  Age       Job
0  Alice   25  Engineer

示例 6:排除某些列(exclude
python 复制代码
df = pd.DataFrame.from_records(data, exclude=['age'], index='name')
print(df)

输出:

复制代码
           job
name          
Alice  Engineer
Bob     Manager

📝 总结
特性 说明
方法名 DataFrame.from_records()
输入类型 可迭代的记录结构(如元组列表、结构化数组)
主要用途 将"记录"格式的数据快速转换为 DataFrame
支持功能 自定义列名、设置索引、排除列、限制行数、强制转换浮点数
常见场景 数据库查询结果、日志文件解析、结构化数据导入

🔁 与 DataFrame(data) 的区别
功能 pd.DataFrame(data) pd.DataFrame.from_records(data)
支持输入 字典、列表、元组等 记录式结构(如元组列表、结构化数组)
列名控制 需手动指定 columns 可通过 columns 控制列名
索引支持 不够灵活 支持指定 index
性能 一般 更适合处理大型结构化数据

相关推荐
Deng9452013142 分钟前
基于Python的旅游数据可视化应用
python·numpy·pandas·旅游·数据可视化技术
大数据魔法师1 天前
基于Pandas和FineBI的昆明职位数据分析与可视化实现(五) - 基于随机森林算法预测职位分类
算法·pandas
Chasing__Dreams2 天前
python--杂识--18.1--pandas数据插入sqlite并进行查询
python·sqlite·pandas
超龄超能程序猿3 天前
(3)机器学习小白入门 YOLOv: 解锁图片分类新技能
python·numpy·pandas·scipy
好开心啊没烦恼4 天前
Python 数据分析:计算,分组统计1,df.groupby()。听故事学知识点怎么这么容易?
开发语言·python·数据挖掘·数据分析·pandas
大虫小呓5 天前
Python 处理 Excel 数据 pandas 和 openpyxl 哪家强?
python·pandas
好开心啊没烦恼6 天前
Python 数据分析:numpy,抽提,整数数组索引与基本索引扩展(元组传参)。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy·pandas
旷世奇才李先生7 天前
Pandas 安装使用教程
pandas
卜及中18 天前
【Python】数据处理工具:Pandas详细指南
开发语言·python·学习·pandas