Когда разумно объединить два параллельных кадра данных pandas? - PullRequest
0 голосов
/ 24 марта 2020

Предположим, есть два кадра данных, которые имеют один и тот же индекс, но имеют разные столбцы. Разумнее ли объединить два фрейма данных здесь или concat?

import pandas as pd
from pandas import DataFrame

df1 = DataFrame(index = ['hey', 'yo'], columns = ['gee', 'thanks'], data = [[1,'foo'],[6,'rhy']]) 
df2 = DataFrame(index = ['hey', 'yo'], columns = ['youre', 'welcome'], data = [[8,'fotb'],[3,'yuo']])

#using merging
df3_merge = df1.merge(df2,left_index = True, right_index = True)  

#result:      
#             gee  thanks  youre  welcome
# hey          1    foo      8    fotb
# yo           6    rhy      3     yuo

#using concatenate
df3_concat = pd.concat([df1,df2], axis = 1)  

#result:      
#             gee  thanks  youre  welcome
# hey          1    foo      8    fotb
# yo           6    rhy      3     yuo

Эта ссылка вдохновила на этот вопрос. Обычно я всегда использовал concat, но мне любопытно, что другие используют или думают.

1 Ответ

1 голос
/ 24 марта 2020

Я думаю, это зависит от того, что нужно.

По умолчанию в DataFrame.merge есть inner соединение, но возможно изменить его на outer, right или left.

df3_merge = df1.merge(df2,left_index = True, right_index = True)  

По умолчанию в concat используется внешнее соединение, но возможно изменить его на inner только с помощью параметра inner:

df3_concat = pd.concat([df1,df2], axis = 1)

Также, если вы хотите соединить список DataFrames, проще и быстрее это метод concat.

Если хотите объединение влево, concat использовать нельзя, потому что не реализовано.


Дополнительная информация о concat.

Дополнительная информация о merge.

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