поэлементное слияние np.array в нескольких столбцах панд - PullRequest
0 голосов
/ 21 ноября 2018

Я получил pandas dataframe, в котором есть несколько значений столбцов 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 для реализацииэто, но просто интересно, если есть более элегантный способ сделать это.

ниже мой код для цикла:

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)

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете использовать 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']

Примечание: отредактировано после цепочки комментариев ниже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...