在Python中向列表添加列
我有以下这个列表:
Training_Frame = pca.fit_transform(np_scaled_train)
它的形状是 (2358,4)
,也就是说它有2358行和4列。我想添加一个第五列,这一列的数据保存在一个pandas的数据框中。为此,我尝试了以下方法,但都没有成功:
Training_Frame.append(dataframe_train.iloc[:,-1])
AttributeError: 'numpy.ndarray' object has no attribute 'append'
所以我尝试了以下代码:
saved_frame = np.append(Training_Frame,dataframe_train.iloc[:,-1])
# This works but the result has a weird shape `(11790,)` despite :
np.shape(dataframe_train.iloc[:,-1]) # is (2358,) so I'm expecting or hopping to get a shape like `(2358,5)
我有点搞不清楚这里的问题出在哪里,有没有什么想法可以帮我解决这个问题?
相关问题:
- 暂无相关问题
1 个回答
2
如果 Training_Frame
和 dataframe_train
的长度是一样的:
Training_Frame = np.column_stack((Training_Frame, dataframe_train.iloc[:,-1].values))
另外,你也可以根据 NDArray 来生成一个 DataFrame(就像 @ayhan 在评论中提到的那样):
Training_Frame = pd.DataFrame(Training_Frame).assign(column_name=dataframe_train.iloc[:,-1])