You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame的每一行转换为数组?

pandas将DataFrame每一行转换为数组/列表的实现方法

你可以根据自己使用的pandas版本和场景,选择以下任意一种方法实现,转换结果会保留原行的列顺序、数值(包括NaN、0值),完全匹配你给出的索引0行的预期输出效果:

  • 推荐方法(pandas 0.24及以上版本通用)
    用官方推荐的to_numpy()方法先转为numpy二维数组,再调用tolist()转为嵌套的Python列表,每个子列表对应原DataFrame的一行:
# 假设你的DataFrame存储在变量df中
row_list = df.to_numpy().tolist()

# 验证索引0的行,输出为 [1.0, 2.0, 3.0, 4.0, 95.0, 96.0, 97.0, 98.0]
print(row_list[0])
  • 逐行处理场景适用方法
    如果你需要在转换过程中对每行做自定义处理(比如过滤空值、类型转换),可以用apply沿行方向遍历转换:
# 基础转换
row_list = df.apply(lambda row: row.tolist(), axis=1).tolist()

# 如果需要过滤每行的NaN值,用这个写法即可
row_list_without_nan = df.apply(
    lambda row: [val for val in row if not pd.isna(val)], 
    axis=1
).tolist()
  • 旧版本兼容写法
    如果你使用的pandas版本低于0.24(无to_numpy()方法),可以直接用.values属性获取数组后转列表:
row_list = df.values.tolist()

注意:以上方法默认会严格按照DataFrame当前的列顺序拼接每行的值,如果你需要调整列顺序再转换,先做列筛选/排序即可。

内容的提问来源于stack exchange,提问作者SSS311

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:48:24