我有一个pd.dataframe
df = {'col1': [1, 2], 'col2': [3, 4]}
我可以通过这样做来创建col2的ndarray:
col2 = np.array(df['col2'].values)
我想添加一个数字作为此向量的第一个元素,我尝试过:
col2=np.array([0])
col2=col2.append( np.array(df['col2'].values))
但是它给出了错误。
我也尝试了连接(df ['col2']。values).tolist() 但我无法解决问题。
答案 0 :(得分:4)
np.append
对于串联任务效率低下。您可以改用np.hstack
或np.concatenate
。还要注意,pd.Series.values
返回一个NumPy数组,因此不需要通过np.array
进行显式强制转换:
df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
col2 = np.array([0])
col2 = np.hstack((col2, df['col2'].values))
# array([0, 3, 4], dtype=int64)
正如@ user3483203所评论的那样,NumPy数组不是必需的,尽管您会看到速度有所提高。您可以将list
和pd.Series
对象与np.hstack
一起使用:
col2 = np.hstack(([0], df['col2']))