大熊猫导出向量并将其形状更改为1d数组

时间:2018-09-12 16:14:50

标签: python arrays pandas numpy multidimensional-array

我有一个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() 但我无法解决问题。

1 个答案:

答案 0 :(得分:4)

np.append对于串联任务效率低下。您可以改用np.hstacknp.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数组不是必需的,尽管您会看到速度有所提高。您可以将listpd.Series对象与np.hstack一起使用:

col2 = np.hstack(([0], df['col2']))