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

相关推荐
修钩.2 天前
力扣 Pandas 挑战(5)---数据分组
算法·leetcode·pandas
万粉变现经纪人2 天前
如何解决pip安装报错ModuleNotFoundError: No module named ‘plotly’问题
python·scrapy·plotly·pycharm·flask·pandas·pip
码界奇点3 天前
Python深度挖掘:openpyxl与pandas高效数据处理实战指南
开发语言·数据库·python·自动化·pandas·python3.11
码界筑梦坊3 天前
91-基于Spark的空气质量数据分析可视化系统
大数据·python·数据分析·spark·django·numpy·pandas
蔷薇のぬ3 天前
Python 使用pandas库实现Excel字典码表对照自动化处理
python·pandas
宝山哥哥4 天前
python办自动化--利用vba或者python按需求读取excel文件指定列,更改列名后,按照要求将列排序,最后填充空白单元格
python·数据分析·自动化·excel·pandas
秋难降5 天前
一篇文章带你了解Pandassssssssssssssss
大数据·python·pandas
封奚泽优5 天前
使用Python绘制金融数据可视化工具
python·信息可视化·excel·pandas·pyplot·qtwidgets·qtcore
一百天成为python专家6 天前
K-近邻算法
数据结构·python·算法·pandas·近邻算法·ipython·python3.11
小关会打代码7 天前
Python编程进阶知识之第四课处理数据(pandas)
python·机器学习·pandas·数据处理