Почему я теряю индексы и информацию заголовка столбца при использовании np.hstack при объединении двух df в python? - PullRequest
3 голосов
/ 01 ноября 2019

У меня есть два кадра данных: Представление:

DF1

X
Yes
No
Maybe

DF2

Y
Yes
No
Maybe

import pandas as pd
import numpy as np
train = pd.DataFrame(np.hstack([DF1,DF2]))

train

0 1
Yes Yes
No  No
Maybe Maybe

Почему мои заголовкиизмените X и Y. Поезд df должен сохранить мои оригинальные заголовки от обоих df. Я попытался сделать axis = 1 и заголовки = true, но это не сработало. pd.concat неэффективен, потому что у меня больше строк, чем в моем оригинальном df.

Я также пытался

df.reset_index()

, но даже после этого pd.concat дал мне больше строкчем мои оригинальные два кадра данных.

1 Ответ

0 голосов
/ 01 ноября 2019

Причина в том, что Numpy методы работают не с DataFrames, а с базовыми Numpy массивами, без любых данных индекса или столбца (индексы строк и столбцов)имена).

Чтобы проверить это, запустите: np.hstack([DF1, DF2]) и вы получите:

array([['Yes', 'Yes'],
       ['No', 'No'],
       ['Maybe', 'Maybe']], dtype=object)

Чтобы сохранить имена столбцов, используйте, например:

pd.concat([DF1, DF2], axis=1)

Этовремя результат будет:

       X      Y
0    Yes    Yes
1     No     No
2  Maybe  Maybe
...