如何将dataframe列添加到含虚拟变量的numpy.array用于回归分析?
实现步骤
前置依赖
你需要提前导入numpy和pandas库:
import numpy as np import pandas as pd
具体操作
假设你现有变量定义如下:
- 存储虚拟变量的numpy数组:
dummy_arr - 待提取列的DataFrame:
df - 待添加的列名:
target_col
方法1:使用np.column_stack(无需手动调整维度,更简便)
该方法会自动将一维的Series转为列向量,直接和原有二维数组拼接:
# 直接拼接,新列位于每行的第一个位置,后续为原有4个虚拟变量值 merged_arr = np.column_stack((df['target_col'], dummy_arr))
方法2:使用np.hstack(需手动调整列向量维度)
需要先将DataFrame列转为7行1列的二维数组,再横向拼接:
# 提取列并调整为二维列向量 col = df['target_col'].values.reshape(-1, 1) # 横向拼接 merged_arr = np.hstack((col, dummy_arr))
效果验证
以你给出的示例数据测试:
原有虚拟变量数组为7行4列,待添加的DataFrame列值为[1,2,3,4,5,6,7],拼接后输出的merged_arr结构为7行5列,示例行如下:
[[1 0 0 0 0] [2 0 0 0 0] ... [6 0 0 0 1] [7 0 0 1 0]]
注意事项
- 需确保DataFrame待添加列的行数和原有numpy数组的行数完全一致,否则会抛出拼接维度错误
- 如果你需要把待添加列放在虚拟变量之后,调换拼接时两个参数的位置即可
内容的提问来源于stack exchange,提问作者mo1996
相关产品推荐
相关产品推荐

