2017-02-17 2 views
1

У меня проблема с объединением двух кадров с различным количеством строк. Первый блок данных имеет 5K строк, а второй блок данных имеет 20K строк. В обоих кадрах есть столбец «id», и все значения 5K «id» будут встречаться в кадре с 20K строками.Pandas - Слияние различных размерных кадров данных

первый кадр "ДФ"

 A B id A_1 B_1 
0 1 1 1  0.5 0.5 
1 3 2 2  0.2 0.4 
2 3 4 3  0.8 0.9 

второй кадр "df_2"

 A B id  
0 1 1 1  
1 3 2 2  
2 3 4 3  
3 1 2 4  
4 3 1 5  

Hopeful выходной кадр "df_out"

 A B id A_1 B_1 
0 1 1 1  0.5 0.5 
1 3 2 2  0.2 0.4 
2 3 4 3  0.8 0.9 
3 1 2 4  na  na 
4 3 1 5  na  na 

Мои попытки Объединить 'ид' есть оставил меня только 5k строк. Операция, которую я ищу, состоит в том, чтобы сохранить все строки большого кадра данных и наклеить значения Nan для данных, которых нет в большом фрейме.

Благодаря

+1

Используйте опцию 'how = 'outer''' pd.merge'. – DyZ

ответ

3

Просто укажите how=outer в df.merge так, что вы используете объединение обоих DataFrames.

>>> df.merge(df_2, how='outer') 
    A A_1 B B_1 id 
0 1.0 0.5 1.0 0.5 1.0 
1 3.0 0.2 2.0 0.4 2.0 
2 3.0 0.8 4.0 0.9 3.0 
3 1.0 NaN 2.0 NaN 4.0 
4 3.0 NaN 1.0 NaN 5.0 
+0

Сейчас он работает ... –

+0

@JeffSaltfist Рад, что я мог помочь! – miradulo

+0

Быстрый вопрос, содержит ли внешний символ аргумент последнего столбца в кадре? –

Смежные вопросы