#pandas #dataframe #join #merge #concatenation
#pandas #фрейм данных #Присоединиться #слияние #конкатенация
Вопрос:
Я пытаюсь объединить два фрейма данных с общими индексами строк и столбцов, однако я ожидаю, что записи с аналогичными индексами строк и столбцов будут существовать в обоих фреймах данных.
Есть ли способ создать правило для сохранения записей в df1, если они присутствуют, но если значения нет, то использовать значение в df2?
итак, df3 = некоторая операция над df1,df21
Пример:
df1 = [[[a],[b],[c]],
[[ ],[e],[ ]],
[[g],[h],[i]]]
df2 = [[[ ],[ ],[ ]],
[[d],[x],[f]],
[[y],[z],[z]]]
df3 = [[[a],[b],[c]],
[[d],[e],[f]],
[[g],[h],[i]]]
Комментарии:
1. Пожалуйста, приведите надлежащие примеры ввода и ожидаемого результата.
2.
df3 = df1.combine_first(df2)
?3. @ChrisA спасибо, это именно то, что я искал!
Ответ №1:
Я думаю, вы ищете pandas df.fillna()::
d1 = [['a','b','c'],[None,'e',None],['g','h','i']]
d2 = [[None,None,None],['d','x','f'],['y','z','z']]
df1,df2 = pd.DataFrame(d1),pd.DataFrame(d2)
df1.fillna(df2)
0 1 2
0 a b c
1 d e f
2 g h i
Ответ №2:
Вы также можете использовать это:
df1[df1.isnull()] = df2.values