Перечислите элементы в столбцы панд - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть список с 4 URL-адресами:

['https://cache.wihaben.at/mmo/6/297/469/806_-1094197631.jpg', 'https://cache.wihaben.at/mmo/6/297/469/806_-455156804.jpg', 'https://cache.wihaben.at/mmo/6/297/469/806_466214286.jpg', 'https://cache.wihaben.at/mmo/6/297/469/806_1475201828.jpg']

, и я хочу построить Pandas dataframe, который должен иметь Image_1, Image_2, Image_3 и Image_4 в качестве имен столбцов и URL-адреса в качестве значений строк.

Мой код:

advert_images = {('Image_1', eval(advert_image_list[0])),
         ('Image_2', eval(advert_image_list[1])),
         ('Image_3', eval(advert_image_list[2])),
         ('Image_4', eval(advert_image_list[3])),
                    }
    adIm_DF = pd.DataFrame(advert_images) 

возвращает ошибку:

Файл "", строка 1 https://cache.wihaben.at/mmo/6/297/469/806_-1094197631.jpg ^ SyntaxError: неверный синтаксис

Оценка застревает на «:» в URL, потому что она, вероятно, анализирует его как dict.

Мне также нужна опция, позволяющая перебирать n-количество URL-адресов в списке и создавать соответствующие столбцы со значениями.Столбцы имеют значение Image_(iterator_value), строка - значение URL.

Ответы [ 4 ]

0 голосов
/ 27 февраля 2019
0 голосов
/ 27 февраля 2019

Я думаю, вы путаете использование eval.Он используется для запуска кода, который сохраняется в строке.В вашем примере python пытается запустить URL как код, который, очевидно, не будет работать.Вам не понадобится eval.

Попробуйте:

advert_image_list = ['https://cache.willhaben.at/mmo/6/297/469/806_-1094197631.jpg', 'https://cache.willhaben.at/mmo/6/297/469/806_-455156804.jpg', 'https://cache.willhaben.at/mmo/6/297/469/806_466214286.jpg', 'https://cache.willhaben.at/mmo/6/297/469/806_1475201828.jpg']

advert_images = [('Image_1', advert_image_list[0]),
         ('Image_2', advert_image_list[1]),
         ('Image_3', advert_image_list[2]),
         ('Image_4', advert_image_list[3])]

adIm_DF = pd.DataFrame(advert_images).set_index(0).T
0 голосов
/ 27 февраля 2019

Если URls хранятся в виде строки (как указал @Tox), у меня нет проблем с кодом:

url_list = ['https://cache.wihaben.at/mmo/6/297/469/806_-1094197631.jpg', 'https://cache.wihaben.at/mmo/6/297/469/806_-455156804.jpg', 'https://cache.wihaben.at/mmo/6/297/469/806_466214286.jpg', 'https://cache.wihaben.at/mmo/6/297/469/806_1475201828.jpg']

im_labels = ['Image_{}'.format(x) for x in np.arange(1, len(url_list) ,1)]

im_df = pd.DataFrame([url_list], columns=im_labels)
0 голосов
/ 27 февраля 2019

Вы должны сделать строку URL.

str((advert_image_list[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...