#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Пример:
df1 = pd.DataFrame({'a':[0,0,0,0,0,0],
'b':[0,0,0,0,0,0], 'b':[0,0,0,0,0,0]}, index=list('abcdef'))
print (df1)
a b c
a 0 0 0
b 0 0 0
c 0 0 0
d 0 0 0
e 0 0 0
f 0 0 0
df2 = pd.DataFrame({'a':range(4),
'b':[5,6,7,8]}, index=list('abce'))
print (df2)
a b
a 0 5
b 1 6
c 2 7
e 3 8
Как мне объединить заполненный фрейм данных в пустой, который будет выглядеть следующим образом?
a b c
a 0 5 0
b 1 6 0
c 2 7 0
d 0 0 0
e 3 8 0
f 0 0 0
Проблема в том, что он не подходит для индекса и столбца.
Комментарии:
1. Возможно, этот вопрос связан со Stackoverflow больше, чем здесь.
Ответ №1:
Не уверен, что это самый эффективный способ, но он работает:
df3 = pd.merge(df1, df2, how='left', left_index=True, right_index=True, suffixes=('_x', ''))
df3['a'].fillna(df3['a_x'], inplace=True)
df3['b'].fillna(df3['b_x'], inplace=True)
df3.drop(['a_x', 'b_x'], axis=1, inplace=True)