Разделить столбец панд списка, сохраненный в виде строки на несколько строк (ошибка literal_eval) - PullRequest
0 голосов
/ 17 октября 2018

У меня есть датафрейм со столбцом списка, который хранится в виде строки.Списки имеют разные размеры.Я хочу разбить элементы в списках на несколько строк

df['urls']
0    '[http://sth/sth]'
1    '[http://sth.COM, https://twitter.com/i/etc]'
2    '[]'

Попробовал с помощью функции literal_eval():

df['urls'] = df['urls'].map(lambda x: literal_eval(x))

, но получил следующую ошибку:

File "<unknown>", line 1
[http://sth/sth]
     ^
SyntaxError: invalid syntax

1 Ответ

0 голосов
/ 17 октября 2018

Чтобы сохранить только URL-адрес в виде текста, вы можете использовать strip(), а затем split():

s = '[http://sth.COM, https://twitter.com/i/etc]'
s = s.strip('[]') # this will remove the [] at the beginning and ending of the string.
urls = s.split(',') # this will separate both urls, returning a list of strings. ['http://sth.COM', ' https://twitter.com/i/etc']

Вы также можете выполнять вырезку с использованием срезов:

s = '[http://sth.COM, https://twitter.com/i/etc]'
s = s[1:-1] # this will keep everything except first and last characters, in this case [ and ].
urls = s.split(',') # this will separate both urls, returning a list of strings. ['http://sth.COM', ' https://twitter.com/i/etc']

Надеюсь, это поможет!

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