【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
性能 一般 更适合处理大型结构化数据

相关推荐
橙露21 小时前
从零基础到实战:Python 数据分析三剑客(Pandas+NumPy+Matplotlib)核心应用指南
python·数据分析·pandas
清水白石0082 天前
手写超速 CSV 解析器:利用 multiprocessing 与 mmap 实现 10 倍 Pandas 加速
python·pandas
Hello.Reader4 天前
PyFlink 向量化 UDF(Vectorized UDF)Arrow 批传输原理、pandas 标量/聚合函数、配置与内存陷阱、五种写法一网打尽
python·flink·pandas
Hello.Reader4 天前
PyFlink Table API Data Types DataType 是什么、UDF 类型声明怎么写、Python / Pandas 类型映射一文搞懂
python·php·pandas
Hello.Reader4 天前
PyFlink Table API 用户自定义函数(UDF)通用 UDF vs Pandas UDF、打包部署、open 预加载资源、读取作业参数、单元测试
log4j·pandas
海棠AI实验室4 天前
第十六章:小项目 2 CSV → 清洗 → 统计 → 图表 → 报告输出
pandas
逻极5 天前
数据分析项目:Pandas + SQLAlchemy,从数据库到DataFrame的丝滑实战
python·mysql·数据分析·pandas·sqlalchemy
海棠AI实验室5 天前
第十七章 调试与排错:读懂 Traceback 的方法论
python·pandas·调试
kong79069285 天前
Pandas简介
信息可视化·数据分析·pandas
爱喝可乐的老王5 天前
数据分析实践--数据解析购房关键
信息可视化·数据分析·pandas·matplotlib