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

相关推荐
2601_9669496514 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
benchmark_cc2 天前
本地已有一年历史 K 线,第二天更新别只拉“昨天一天”
python·数据分析·pandas·量化交易·股票数据·quantdash
正在走向自律3 天前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas
ctlover4 天前
Pandas进阶
人工智能·机器学习·pandas
程序员清风4 天前
数据类型转换与日期时间处理
数据结构·pandas
for_ever_love__5 天前
Pandas 基础——用 DataFrame 管理训练数据与实验记录
数据分析·pandas·大模型开发·dataframe
benchmark_cc6 天前
A股量化尾盘筛选对数据时效敏感:行情链路变慢时先排查哪里?
python·数据分析·pandas·量化交易·股票数据·quantdash
梅雅达编程笔记6 天前
07-Pandas数据清洗:
pandas·drop_duplicates·dropna·fillna·to_numeric·to_datetime·清洗流程
for_ever_love__6 天前
电商订单数据清洗实战——Pandas 处理缺失值、重复单与异常金额
python·数据分析·pandas·数据清洗
weixin_440401696 天前
质朴的爬虫+数据处理
爬虫·python·数据分析·pandas