Использование Series.apply
:
df['new'] = df.Address.apply(parser.street_addresses)
Или:
df['new'] = df.Address.apply(lambda x: parser.street_addresses(x))
Или list comprehension
:
df['new'] = [parser.street_addresses(x) for x in df.Address]
print (df)
Address new
0 61 Park Street, Camden, ME, 04843, US [61 Park Street,]
1 1208 BEECHCRAFT BLVD []
2 6704 BEECHCRAFT []
3 PO BOX 469 []
4 6461 44TH AVE [6461 44TH AVE]
5 11026 BELLE HAVEN DR [1026 BELLE HAVEN DR]
Если хотите получить первое совпадающее значение, добавьте next
с iter
для возможного совпадения со значением по умолчанию, если пустые списки:
df['new'] = df.Address.apply(lambda x: next(iter(parser.street_addresses(x)), ''))
print (df)
Address new
0 61 Park Street, Camden, ME, 04843, US 61 Park Street,
1 1208 BEECHCRAFT BLVD
2 6704 BEECHCRAFT
3 PO BOX 469
4 6461 44TH AVE 6461 44TH AVE
5 11026 BELLE HAVEN DR 1026 BELLE HAVEN DR
Или, если необходимо, объедините все возможные значения в списках с разделителем:
df['new'] = df.Address.apply(parser.street_addresses).str.join(', ')