我编写了一个基于Selenium的Python3程序,以从一个懒惰的滚动网站上刮取主持人列表。
我陷入了最后一步。转换行,例如:
Eleni Efstathiou (Houston, US) Silke Gillessen (St. Gallen, CH)
Susana Banerjee (London, GB) Sandro Pignata (Napoli, IT)
Rick L. Haas (Amsterdam, NL)
输入名称,城市和国家变量,然后将其填充到数据框中。上面的数据将生成五行。
对正则表达式或其他更简单的方法有帮助吗?
答案 0 :(得分:2)
您可以使用正则表达式提取字段并获取元组列表:
s = '''Eleni Efstathiou (Houston, US) Silke Gillessen (St. Gallen, CH)
Susana Banerjee (London, GB) Sandro Pignata (Napoli, IT)
Rick L. Haas (Amsterdam, NL)'''
import re
mods = re.findall('(.+?)\s+\((.+?),\s+(.+?)\)\s*',s)
下一步,将列表转换为数据框:
pd.DataFrame(mods, columns=('name', 'city', 'nation'))
# name city nation
#0 Eleni Efstathiou Houston US
#1 Silke Gillessen St. Gallen CH
#2 Susana Banerjee London GB
#3 Sandro Pignata Napoli IT
#4 Rick L. Haas Amsterdam NL