Вывод кадра данных путем объединения двух других кадров данных - PullRequest
0 голосов
/ 21 октября 2019

Я новичок в Python и пробую свои силы в определенных проблемах. У меня есть ситуация, когда у меня есть 2 кадра данных, которые я хочу объединить для достижения желаемого уровня данных.

Я пробовал .merge и .join, оба из которых не смогли получить желаемый результат.

давайте предположим, что у меня есть следующий сценарий:

lt = list(['a','b','c','d','a','b','a','b'])
df = pd.DataFrame(columns = lt)

data = [[10,11,12,12], [15,14,12,10]]
df1 = pd.DataFrame(data, columns = ['a','b','c','d']) 

Я хочу, чтобы df и df1 были объединены и получили желаемый фрейм данных как df2 как:

    a   b   c   d   a   b   a   b
0   10  11  12  12  10  11  10  11
1   15  14  12  10  15  14  15  14

Ответы [ 3 ]

1 голос
/ 21 октября 2019

Что вы можете сделать, это использовать столбцы df и выбрать соответствующие столбцы в df1, например, так:

lt = list(['a','b','c','d','a','b','a','b'])
df = pd.DataFrame(columns = lt)

data = [[10,11,12,12], [15,14,12,10]]
df1 = pd.DataFrame(data, columns = ['a','b','c','d']) 

df2 = df1[df.columns]
print(df2)

отпечатки:

    a   b   c   d   a   b   a   b
0  10  11  12  12  10  11  10  11
1  15  14  12  10  15  14  15  14
0 голосов
/ 21 октября 2019

Использование concat()

pd.concat([df, df1], axis=0, join='inner', sort=False)
    a   b   c   d   a   b   a   b
0  10  11  12  12  10  11  10  11
1  15  14  12  10  15  14  15  14
0 голосов
/ 21 октября 2019

Если вы не возражаете против порядка изменения столбцов, это просто правильное соединение. Единственное предостережение заключается в том, что они выполняются в строках, а не в столбцах, поэтому сначала необходимо выполнить транспонирование:

In [44]: df.T.join(df1.T, how='right').T
Out[44]:
    a   a   a   b   b   b   c   d
0  10  10  10  11  11  11  12  12
1  15  15  15  14  14  14  12  10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...