Я хочу получить все даты в формате мм / дд / гггг
Все даты хранятся в 'some_column' и имеют смешанный формат
Я попытался сделать это с помощью метода apply. 1005 *
def modify(row):
m = re.match(r'(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})', row['some_column'])
if len(m.group(1)) == 1 :
mm = '0'+ m.group(1)
else :
mm = m.group(1)
if len(m.group(2)) == 1 :
dd = '0' + m.group(2)
else :
dd = m.group(2)
if len(m.group(3)) == 2 :
yyyy = '19' + m.group(3)
else :
yyyy = m.group(3)
row['some_column'] = mm+'/'+dd+'/'+yyyy ##<----------here
df.apply(modify, axis = 1)
Я знаю, где возникает проблема ... Есть ли способ установить значение столбца каждой строки таким образом ...
Или, если нет, то какова альтернатива
EDIT
Я вернул серию из функции и установил ее в исходный фрейм данных
def modify(row):
m = re.match(r'(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})', row['some_column'])
if len(m.group(1)) == 1 :
mm = '0'+ m.group(1)
else :
mm = m.group(1)
if len(m.group(2)) == 1 :
dd = '0' + m.group(2)
else :
dd = m.group(2)
if len(m.group(3)) == 2 :
yyyy = '19' + m.group(3)
else :
yyyy = m.group(3)
return mm+'/'+dd+'/'+yyyy
df['some_column'] = df.apply(modify, axis = 1)