Как я могу использовать .loc
с .str.match()
для обновления значений столбцов, но с вызовом функции?Код, который я пробую, выглядит так:
df.loc[df['Col1'].str.match(r'\d\d/\d\d/\d\d\d\d', na=False), 'Col2'] = _my_func(df['Col1'])
простой шаблон регулярных выражений для поиска формата даты, а затем _myfunc()
;
def _my_func(data)
for row in data.iteritems():
day = int(row[1][:2])
month = int(row[1][3:5])
year = int(row[1][6:])
fecha = datetime.datetime(year, month, day, 0, 0, 0)
diff = fecha - datetime.datetime.now()
if diff.days > 0:
return 'Yes'
elif diff.days < 0:
return 'No'
Это правильный способ возврата значенийиз функции в фрейм данных?
Также, если я вставлю print('test')
в _my_func
непосредственно перед return
, он печатает test
только один раз вместо печати для каждой строки данных, передаваемых в функцию,кто-нибудь знает почему?Спасибо.