Python 将数据帧中的特定列转换为numpy数组并与原始数据帧合并
我有一个这样的数据帧Python 将数据帧中的特定列转换为numpy数组并与原始数据帧合并,python,pandas,numpy,Python,Pandas,Numpy,我有一个这样的数据帧 Company_id year dummy_1 dummy_2 dummy_3 dummy_4 dummy_5 1 1990 1 0 1 1 1 1 1991 0 0 1 1 0 1 1992 0 0 1 1 0 1 1993
Company_id year dummy_1 dummy_2 dummy_3 dummy_4 dummy_5
1 1990 1 0 1 1 1
1 1991 0 0 1 1 0
1 1992 0 0 1 1 0
1 1993 1 0 1 1 0
1 1994 0 1 1 1 0
1 1995 0 0 1 1 0
1 1996 0 0 1 1 1
我需要最后5列作为向量,然后将其附加到原始数据帧。我知道我可以切片列并创建矩阵,例如:
df.as_matrix(columns=[df[-5:]])
下面是我想要的结果输出:
Company_id year dummy_1 dummy_2 dummy_3 dummy_4 dummy_5 vector
1 1990 1 0 1 1 1 [1, 0, 1, 1, 1]
1 1991 0 0 1 1 0 [0, 0, 1, 1, 0]
1 1992 0 0 1 1 0 [0, 0, 1, 1, 0]
1 1993 1 0 1 1 0 [1, 0, 1, 1, 0]
1 1994 0 1 1 1 0 [0, 1, 1, 1, 0]
1 1995 0 0 1 1 0 [0, 0, 1, 1, 0]
1 1996 0 0 1 1 1 [0, 0, 1, 1, 1]
但是,我怎样才能将其作为数组添加到原始数据集中呢?我认为需要选择最后一列,并将新列转换为numpy数组和列表:
df = df.assign(new = df.iloc[:, -5:].values.tolist())
print (df)
Company_id year dummy_1 dummy_2 dummy_3 dummy_4 dummy_5 \
0 1 1990 1 0 1 1 1
1 1 1991 0 0 1 1 0
2 1 1992 0 0 1 1 0
3 1 1993 1 0 1 1 0
4 1 1994 0 1 1 1 0
5 1 1995 0 0 1 1 0
6 1 1996 0 0 1 1 1
new
0 [1, 0, 1, 1, 1]
1 [0, 0, 1, 1, 0]
2 [0, 0, 1, 1, 0]
3 [1, 0, 1, 1, 0]
4 [0, 1, 1, 1, 0]
5 [0, 0, 1, 1, 0]
6 [0, 0, 1, 1, 1]
当然,现在添加对不起,我应该对array()说点什么吗,因为我以后会用它们进行比较on@DogukanYılmaz-然后需要
df['new']=df['new'].应用(np.array)
?