我得到了一个熊猫数据框,其中有几列的值是np.array,我想将这些np.arrays合并为一个基于元素逐行的行。
例如
col1 col2 col3
[2.1, 3] [4, 4] [2, 3]
[4, 5] [6, 7] [9, 9]
[7, 8] [8, 9] [5, 4]
... ... ...
预期结果:
col_f
[2.1, 3, 4, 4, 2, 3]
[4, 5, 6, 7, 9, 9]
[7, 8, 8, 9 5, 4]
........
我使用一种for循环来实现它,但是只是想知道是否有更优雅的方法来实现它。
下面是我的for循环鳕鱼:
f_vector = []
for i in range(len(df.index)):
vector = np.hstack((df['A0_vector'][i], items_df['A1_vector'][i], items_df['A2_vector'][i], items_df['A3_vector'][i], items_df['A4_vector'][i], items_df['A5_vector'][i]))
f_vector.append(vector)
X = np.array(f_vector)
答案 0 :(得分:0)
您可以将numpy.concatenate与沿轴= 1一起应用:
import numpy as np
df['col_f'] = df[['col1', 'col2', 'col3']].apply(np.concatenate, axis=1)
如果这些是列表而不是np.arrays,则+
运算符将起作用:
df['col_f'] = df['col1'] + df['col2'] + + df['col3']
注意:在下面的评论之后进行了编辑。