Существует список, содержащий URL адресов на с параметрами:извлечения параметров URL в панды DataFrame
http://example.com/?param1=apple¶m2=tomato¶m3=carrot
http://sample.com/?param1=banana¶m3=potato¶m4=berry
http://example.org/?param2=apple¶m3=tomato¶m4=carrot
Каждый URL может содержать любой из 4 параметров.
Я хочу извлечь параметры URL и добавить их в Pandas DataFrame. DataFrame должен иметь столбец URL и 4 столбца с параметрами. Если параметр не указан в URL, ячейка пуста:
URL param1 param2 param3 param4
... apple tomato carrot
... banana potato berry
... apple tomato carrot
Я планировал использовать питон встроенного urlparse модуля, который позволяет легко извлекать параметры:
import urlparse
url = 'http://example.com/?param1=apple¶m2=tomato¶m3=carrot'
par = urlparse.parse_qs(urlparse.urlparse(url).query)
print par['param1'], par['param2']
Out: ['apple'] ['tomato']
с urlparse я могу получить список параметров в URL-адресов:
import pandas as pd
urls = ['http://example.com/?param1=apple¶m2=tomato¶m3=carrot',
'http://sample.com/?param1=banana¶m3=potato¶m4=berry',
'http://example.org/?param2=apple¶m3=tomato¶m4=carrot']
df = pd.DataFrame(urls, columns=['url'])
params = [urlparse.parse_qs(urlparse.urlparse(url).query) for url in urls]
print params
Out: [{'param1': ['apple'], 'param2': ['tomato'], 'param3': ['carrot']},
{'param1': ['banana'], 'param3': ['potato'], 'param4': ['berry']},
{'param2': ['apple'], 'param3': ['tomato'], 'param4': ['carrot']}]
...
Я не знаю, как добавить извлеченные параметры в DataFrame. Может быть, есть лучший способ сделать это? Исходный файл - ~ 1m URL.