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

相关推荐
CodeCraft Studio2 天前
Excel处理控件Aspose.Cells教程:使用 Python 将 Pandas DataFrame 转换为 Excel
python·json·excel·pandas·csv·aspose·dataframe
njxiejing2 天前
Pandas数据结构(DataFrame,字典赋值)
数据结构·人工智能·pandas
Calihen的学习日志3 天前
【Pandas】3.1-数据预处理:列的基本操作
python·pandas
Source.Liu4 天前
【Python自动化】 21.2 Pandas 读取 Excel 时的 dtype 参数完全指南
python·自动化·pandas
Source.Liu4 天前
【Python自动化】 21 Pandas Excel 操作完整指南
python·excel·pandas
Source.Liu4 天前
【Python自动化】 21.1 Pandas 读取 Excel 文件的完整指南
python·自动化·pandas
偷心伊普西隆6 天前
Pandas DataFrame 指南
python·数据分析·pandas
chad__chang11 天前
Pandas的数据结构
数据结构·pandas
老歌老听老掉牙14 天前
Pandas DataFrame 列数操作完全指南
python·pandas
万粉变现经纪人14 天前
如何解决pip安装报错ModuleNotFoundError: No module named ‘websockets’问题
ide·pycharm·beautifulsoup·pandas·fastapi·pip·httpx