Предположим, что url_list является dict со следующей структурой:
url_list = {'url': [<url1>, <url2>, <url3>, <url4>, ..., <urln>]}
вызов headers_frame.url.map(lambda x: header_agg(x))
вернет список с n элементами в форме:
[<url1(h1_list, h2_list, h3_list)>, <url2(h1_list, h2_list, h3_list)>, ..., <urln(h1_list, h2_list, h3_list)>]
Для того, чтобы код выдал вам требуемый вывод, вам, возможно, придется переписать последний оператор в виде цикла
headers_frame.update({'H1':[], 'H2':[], 'H3':[]})
for url in headers_frame.url:
headers = header_agg(url)
headers_frame['H1'].extend(headers[0])
headers_frame['H2'].extend(headers[1])
headers_frame['H3'].extend(headers[2])