在Python中向列表添加列

1 投票
1 回答
3009 浏览
提问于 2025-05-17 17:02

我有以下这个列表:

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_Framedataframe_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])

撰写回答