Sklearn preprocessing - PolynomialFeatures - How to keep column names/headers of the output array / dataframe(SkLearning预处理-PolynomialFeature-如何保留输出数组/数据帧的列名/标题)
本文介绍了SkLearning预处理-PolynomialFeature-如何保留输出数组/数据帧的列名/标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
TLDR:如何从sklearn.precessing.PolynomialFeature()函数获取输出NumPy数组的头?
假设我有以下代码...
import pandas as pd
import numpy as np
from sklearn import preprocessing as pp
a = np.ones(3)
b = np.ones(3) * 2
c = np.ones(3) * 3
input_df = pd.DataFrame([a,b,c])
input_df = input_df.T
input_df.columns=['a', 'b', 'c']
input_df
a b c
0 1 2 3
1 1 2 3
2 1 2 3
poly = pp.PolynomialFeatures(2)
output_nparray = poly.fit_transform(input_df)
print output_nparray
[[ 1. 1. 2. 3. 1. 2. 3. 4. 6. 9.]
[ 1. 1. 2. 3. 1. 2. 3. 4. 6. 9.]
[ 1. 1. 2. 3. 1. 2. 3. 4. 6. 9.]]
如何才能使3x10矩阵/输出_nparray传递a、b、c标签与上述数据之间关系?
推荐答案
工作示例,全部在一行中(我假设这里的目标不是"可读性"):
target_feature_names = ['x'.join(['{}^{}'.format(pair[0],pair[1]) for pair in tuple if pair[1]!=0]) for tuple in [zip(input_df.columns,p) for p in poly.powers_]]
output_df = pd.DataFrame(output_nparray, columns = target_feature_names)
更新:正如@OmerB指出的,现在您可以使用
get_feature_names
method:
>> poly.get_feature_names(input_df.columns)
['1', 'a', 'b', 'c', 'a^2', 'a b', 'a c', 'b^2', 'b c', 'c^2']
这篇关于SkLearning预处理-PolynomialFeature-如何保留输出数组/数据帧的列名/标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:SkLearning预处理-PolynomialFeature-如何保留输出数组
基础教程推荐
猜你喜欢
- 如何防止Groupby超越指数? 2022-09-22
- Python h5py-为什么我收到广播错误? 2022-09-21
- 从顶点坐标创建三角网格 2022-09-21
- 如何在hdf5文件的多个组之间拆分数据? 2022-09-21
- 在OpenCV中放大后,Python会捕捉图像的特定部分 2022-09-22
- 如何将RPC与Volttron配合使用 2022-09-21
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 跟在带量词的前瞻后面有什么作用? 2022-09-22
- 在 pandas 中使用带有多重索引的.loc 2022-09-22
- 使用工作区API导入方法导入数据库笔记本(动态内 2022-09-21