将数组结构转换为数据框以获取列名
Converting an array structure to a dataframe to get the column names
我有一个数据框,我已将其转换为数组以使用回归算法对数据建模。我用下面的代码来做
X=df.iloc[:, 0:345].values
Y=df.iloc[:,345].values
因此 X 和 Y 是数组 now.There 是许多列,因为分类变量已创建为虚拟变量。此外,我创建了训练和测试拆分
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
X_train,X_test,y_train,y_test=train_test_split(X,Y,test_size=0.25,random_state=0)
现在,在完成模型构建和预测之后,我想取回分类变量的值(在为所有分类变量创建虚拟变量后创建了 X 和 Y)。为此,我我正在尝试将我的 X_test 转换回具有原始数据框 df 中的列名的数据框。我尝试了以下代码
dff=df.iloc[:, 0:345]
以上语句是获取(数据框的)前345列。
然后,
pd.DataFrame(X_test, index=dff.index, columns=dff.columns)
我收到以下错误
ValueError: Shape of passed values is (345, 25000), indices imply (345, 100000)
我不明白为什么我有多少行很重要。我的行数较少,因为我的训练和测试已经分开了 75%-25%。在数据转换为数组后,我正在执行拆分。我现在如何将数组数据转换为具有来自 dff 数据帧的列名的数据帧?
我建议使用 train_test_split
的 DataFrame,然后使用 numpy 将数组传递给您的算法:
my_algorithm(np.asarray(X_train), np.asarray(y_train))
通过这种方式,您可以像查看任何 df 一样查看数据,但可以 运行 模型与数组。我不确定您使用的是什么库 - 但我很确定有些人现在可以使用 DataFrames 进行建模。
pd.DataFrame(X_test, index=dff.index, columns=dff.columns)
X_test
是 numpy.ndarray
将上面的语句修改为:
df_new=pd.DataFrame(X_test)
df_new.columns=list(dff.columns)
新数据框包含 X_test
数据,并且列名也从 dff
数据框分配给新创建的数据框。
我有一个数据框,我已将其转换为数组以使用回归算法对数据建模。我用下面的代码来做
X=df.iloc[:, 0:345].values
Y=df.iloc[:,345].values
因此 X 和 Y 是数组 now.There 是许多列,因为分类变量已创建为虚拟变量。此外,我创建了训练和测试拆分
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
X_train,X_test,y_train,y_test=train_test_split(X,Y,test_size=0.25,random_state=0)
现在,在完成模型构建和预测之后,我想取回分类变量的值(在为所有分类变量创建虚拟变量后创建了 X 和 Y)。为此,我我正在尝试将我的 X_test 转换回具有原始数据框 df 中的列名的数据框。我尝试了以下代码
dff=df.iloc[:, 0:345]
以上语句是获取(数据框的)前345列。
然后,
pd.DataFrame(X_test, index=dff.index, columns=dff.columns)
我收到以下错误
ValueError: Shape of passed values is (345, 25000), indices imply (345, 100000)
我不明白为什么我有多少行很重要。我的行数较少,因为我的训练和测试已经分开了 75%-25%。在数据转换为数组后,我正在执行拆分。我现在如何将数组数据转换为具有来自 dff 数据帧的列名的数据帧?
我建议使用 train_test_split
的 DataFrame,然后使用 numpy 将数组传递给您的算法:
my_algorithm(np.asarray(X_train), np.asarray(y_train))
通过这种方式,您可以像查看任何 df 一样查看数据,但可以 运行 模型与数组。我不确定您使用的是什么库 - 但我很确定有些人现在可以使用 DataFrames 进行建模。
pd.DataFrame(X_test, index=dff.index, columns=dff.columns)
X_test
是 numpy.ndarray
将上面的语句修改为:
df_new=pd.DataFrame(X_test)
df_new.columns=list(dff.columns)
新数据框包含 X_test
数据,并且列名也从 dff
数据框分配给新创建的数据框。