gpt4 book ai didi

python - 有没有一种简单的方法可以将
 标签的内容获取到 pandas 数据帧?

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:22 24 4
gpt4 key购买 nike

我试图将预标记的内容传递给 pandas 数据框,但我无法做到,这是我到目前为止所拥有的:

import requests,pandas
from bs4 import BeautifulSoup

#url

url='http://weather.uwyo.edu/cgi-bin/sounding?region=samer&TYPE=TEXT%3ALIST&YEAR=2019&MONTH=09&FROM=2712&TO=2712&STNM=80222'
peticion=requests.get(url)
soup=BeautifulSoup(peticion.content,"html.parser")

#get only the pre content I want

all=soup.select("pre")[0]

#write the content in a text file

with open('sound','w') as f:
f.write(all.text)

#read it
df = pandas.read_csv('sound')
df

我得到一个非结构化数据帧,由于我必须使用多个 url 来执行此操作,所以我宁愿在第 12 行之后直接传递数据,而无需编写文件。

this is the dataframe I get

最佳答案

它是固定宽度文本,因此您需要通过分割“\n”来生成行,然后使用固定宽度值生成列。您可以使用 csv 来节省开销,但您需要一个数据框。

import pandas as pd
import requests
from bs4 import BeautifulSoup as bs

r = requests.get('http://weather.uwyo.edu/cgi-bin/sounding?region=samer&TYPE=TEXT%3ALIST&YEAR=2019&MONTH=09&FROM=2712&TO=2712&STNM=80222')
soup = bs(r.content, 'lxml')
pre = soup.select_one('pre').text
results = []

for line in pre.split('\n')[1:-1]:
if '--' not in line:
row = [line[i:i+7].strip() for i in range(0, len(line), 7)]
results.append(row)

df = pd.DataFrame(results)
print(df)

关于python - 有没有一种简单的方法可以将 <pre> 标签的内容获取到 pandas 数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com