Pandas сравнивает строки в ячейках в двух фреймах данных с правилом

#python #python-3.x #pandas #dataframe

#python #python-3.x #pandas #фрейм данных

Вопрос:

У меня есть два фрейма данных, и мне нужно заменить значения / строки, только если это определенное значение / строка.

df1

 - L 1 P
1 1 2 *
1 M 8 1
 

df2

 3 4 5 6
2 4 5 6
9 8 7 6 
 

правило: заменяйте ячейки в df1 на df2, только если df1 = 1

 - L 5 P
2 4 2 *
9 M 8 6
 

Каким будет код python для этой операции?

Ответ №1:

Сначала преобразуйте все в строку df1 , используя df.astype затем используйте df.mask здесь.

 df1 = df1.astype(str)
df1.mask(df1.eq('1'), df2)

   0  1  2  3
0  -  L  5  P
1  2  4  2  *
2  9  M  8  6