Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将非结构化字符串转换为数据帧?_Python_String_Pandas_Dataframe_Data Manipulation - Fatal编程技术网

Python 如何将非结构化字符串转换为数据帧?

Python 如何将非结构化字符串转换为数据帧?,python,string,pandas,dataframe,data-manipulation,Python,String,Pandas,Dataframe,Data Manipulation,我有一个长字符串文本,我想将其转换为数据帧进行分析。请参阅下面的数据示例。我想列为“设施”、“街道”、“城市”、“电话”和“商店营业时间” 我使用StringIO将其转换为数据帧,但它将其转换为具有0行和1000列的数据帧。相反,我希望上面提到的列和每个商店的行 我希望数据填充为行时会是这样: Facility Street City Phone Alaska USCG Base Ketchikan 1

我有一个长字符串文本,我想将其转换为数据帧进行分析。请参阅下面的数据示例。我想列为“设施”、“街道”、“城市”、“电话”和“商店营业时间”

我使用StringIO将其转换为数据帧,但它将其转换为具有0行和1000列的数据帧。相反,我希望上面提到的列和每个商店的行

我希望数据填充为行时会是这样:

Facility                    Street               City           Phone   
Alaska USCG Base Ketchikan  1300 Stedman Street  Ketchikan, AK  (907) 228 0250

您可以使用简单的web抓取技术,例如
bs4
请求

import bs4 

r = requests.get(URL)
b = bs4.BeautifulSoup(r.text)


好了,网站比原始字符串更能满足您的需求。阅读一下
BeautifulSou
p以及如何解析XML文件(在本例中为HTML)。您希望提取
p
标记之间的值(即value

)并清除这些值。首先使用一些库获取.HTML文件(如
urllib
requests
库),并尝试阅读一些基本示例,了解如何使用
bs4
@rafaelc解析这些库的响应感谢您的帮助。实际上,我最初尝试使用
beautifulsou
来获取信息,但在使其正常工作时遇到了问题,因此我转而尝试一些字符串操作。
import bs4 

r = requests.get(URL)
b = bs4.BeautifulSoup(r.text)
addresses = []

for val in b.find_all(name='p'):
  s = list(val.stripped_strings)
  if s and not s[0].startswith('HOURS'): addresses.append(' '.join(s[:-1]))