Конкатенация массивов разных размеров по строкам с использованием NumPy - PullRequest
0 голосов
/ 25 декабря 2018

Мне удалось объединить два набора данных CSV одинакового размера (т. Е. Одинакового количества столбцов) построчно, используя np.concatenate.

combined = np.concatenate((price1,price2))

Как объединить два набора данных csv разных размеров (они содержат общие заголовки, за исключением того, что в одном из наборов данных есть дополнительный столбец) построчно, используя numpy?

заголовки набора данных1:a, b, c, d, e, f, g, h, i, k

заголовки набора данных2: a, b, c, d, e, f, g, h, i, j (дополнительный столбецкоторый не требуется для анализа), k

Большое спасибо.

1 Ответ

0 голосов
/ 25 декабря 2018

Вы можете использовать np.delete, чтобы удалить дополнительный столбец, а затем использовать np.concatenate

headers = list('abcdefghik')
a = np.arange(len(headers)).reshape(1, -1)
#Output: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

headers_2 = list('abcdefghijk')
b = np.arange(len(headers_2)*2).reshape(2,-1)
#Output: array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
#       [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]])

col_to_remove = headers_2.index('j')
np.delete(b, col_to_remove, axis = 1) #note that this does not modify original array, returns a copy.
#Output: array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8, 10],
#       [11, 12, 13, 14, 15, 16, 17, 18, 19, 21]])

result = np.concatenate((a, np.delete(b, col_to_remove, axis = 1)))
#Output: array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
#       [ 0,  1,  2,  3,  4,  5,  6,  7,  8, 10],
#       [11, 12, 13, 14, 15, 16, 17, 18, 19, 21]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...