есть ли правильный способ эффективно заменить значение в dataframe другим?

#python #pandas #dataframe

#python #pandas #dataframe

Вопрос:

Ниже приведен пример фрейма данных, с которым я работаю. здесь я пытаюсь заменить отредактированные значения на homezip.

 EmpZipCode         homeZip          
839E2              839E2
ED                 A83C3
ED                 938B4
ED                 B82E2
893D9              893D9
  

Здесь я пытаюсь заменить значение unk на homezip таким образом, чтобы оно удаляло первое
алфавит, если присутствует, сохраняет все значение. Желаемый, как показано ниже:

 EmpZipCode         homeZip          
839E2              839E2
83C3               A83C3
938B4              938B4
82E2               B82E2
893D9              893D9
  

Ответ №1:

Здесь нам нужны два np.where , 1-й — удалить альфа-версию домашнего zip-файла, 2-й — заменить ED предыдущим выводом

 s = np.where(df.homeZip.str[0].str.isalpha(),df.homeZip.str[1:], df.homeZip)
df['EmpZipCode'] = np.where(df['EmpZipCode'].eq('ED'), s , df.EmpZipCode)
df
Out[23]: 
  EmpZipCode homeZip
0      839E2   839E2
1       83C3   A83C3
2      938B4   938B4
3       82E2   B82E2
4      893D9   893D9
  

Комментарии:

1. @gannu сначала мы выполняем настройку в homezip, если это первая буква alpha, мы удаляем ее, затем, когда у нас есть предварительно очищенное значение заполнения, просто нужно назначить, когда оно редактируется