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

如何从df.as_matrix()转换回保留索引列名的Pandas DataFrame?

把矩阵转回带原索引和列名的DataFrame的最直接方法

嘿,这个需求太常见了!要把通过df.as_matrix()(顺带提一句,Pandas 0.23.0之后官方已经弃用这个方法啦,现在更推荐用df.to_numpy()来获取数组)得到的矩阵,经过sklearn变换后转回保留原索引和列名的DataFrame,最直接的方式就是直接用Pandas的DataFrame构造函数,把原DataFrame的列名和索引传进去就行。

举个具体的例子:
假设你原来的DataFrame叫original_df,经过转换和sklearn处理后的矩阵是transformed_matrix,那代码可以这么写:

import pandas as pd

# 直接用构造函数,传入矩阵、原列名和原索引
new_df = pd.DataFrame(transformed_matrix, columns=original_df.columns, index=original_df.index)

几点补充说明:

  • 这个方法能完美保留原DataFrame的列名和索引,完全符合你的需求;
  • 不管你用as_matrix()还是to_numpy()得到的数组,甚至是sklearn变换输出的数组(只要是二维结构),这个方法都适用;
  • 如果你的sklearn变换改变了列的数量(比如做了PCA降维),那原列名可能就不匹配了,这时候你需要自定义新的列名,但如果是像标准化、归一化这种不改变列数的变换,上面的代码直接用就好。

内容的提问来源于stack exchange,提问作者Intelligent-Infrastructure

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:42:59