Фрейм данных Python: добавьте «0» перед каждым номером телефона

#python

#python

Вопрос:

Я очищаю файл csv с помощью python. Моя цель — найти любые числа, которые не начинаются с 0, и добавить 0 перед номером

пример существующих данных :

введите описание изображения здесь

Ожидаемый результат: 0 будет добавлено к каждому номеру, который не начинается с 0

введите описание изображения здесь

Мой текущий код: логика приведенного ниже кода заключается в том, чтобы отфильтровать числа, начинающиеся с 1, а затем добавить 0 перед ним.

Мне удалось добавить ноль в из каждого номера, который не начинается с нуля, но я не могу обновить фрейм данных.

 for i in eg1['MOBILENO']:
    if re.findall(r'^["1"] ', i):
        z = "0"  i
        print(z)
  

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

1. Пожалуйста, не используйте изображения кода и не предоставляйте (текстовые) примеры кода и данных

2. Пожалуйста, предоставьте (текстовые) примеры кода и данных.

Ответ №1:

Вы можете попробовать следующий пример

 df['MOBILENO'] = df['MOBILENO'].apply(lambda x: "0"   x if re.findall(r'^["1"] ', x) else x)
  

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

1. Большое вам спасибо. Это работает! . Я также нахожу способы сохранить его непосредственно в df, но вы мне помогли. большое спасибо

2. df.to_csv(‘test.csv», index= False) — вы можете сохранить csv напрямую

Ответ №2:

Я пробовал это, и это сработало, проверьте это один раз.

Отступы были указаны неправильно, проверьте это при вставке кода.

 for i in range(len(eg1)):
    if eg1.loc[i, 'MOBILENO'][0] != '0':
       x.loc[i,'MOBILENO'] = '0'   x.loc[i,'MOBILENO']