- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 python 有点陌生,我的代码有一些问题。如果对我尝试做的事情有任何建议,我将不胜感激。
import pandas as pd
from bs4 import BeautifulSoup
import requests
def trade():
tickers = ["AAPL","AMZN", "INTC", "MSFT", "SNAP"]
for ticker in tickers:
url = "http://finance.yahoo.com/quote/%s?p=%s"%(ticker,ticker)
res = requests.get(url)
soup = (BeautifulSoup(res.content, 'lxml'))
table = soup.find_all('table')[0]
df = pd.read_html(str(table))
print("DF")
print(df)
df_string = str(df)
print(df_string_parse)
print(type(df_string_parse))
当我查看 df 时,它显示这样的字符串
[ 0 1
0 Previous Close 167.37
1 Open 169.79
2 Bid 157.23 x 300
3 Ask 157.29 x 500
4 Day's Range 169.00 - 173.09
5 52 Week Range 134.84 - 180.10
6 Volume 51124085
7 Avg. Volume 33251246]
我想要做的是将每个股票的表存储到数据框中,然后将它们合并在一起,如下所示。或者我想如果有办法的话,我可以把它变成字典,这样我就可以更容易地使用它的变量。
APPL AMAZN INTC MSFT SNAP
Previous Close
Open
Bid
Ask
Day's Range
Volume
Avg. Volume
目前,我面临两个问题:
最佳答案
我会这样做:
import pandas as pd
from bs4 import BeautifulSoup
import requests
def fetch(t):
url = f'http://finance.yahoo.com/quote/{t}?p={t}'
res = requests.get(url)
soup = (BeautifulSoup(res.content, 'lxml'))
table = soup.find_all('table')[0]
labels, data = pd.read_html(str(table))[0].values.T
# ^
# What you were missing
# pd.read_html returned a list of 1 dataframe
return pd.Series(data, labels, name=t)
tickers = ["AAPL","AMZN", "INTC", "MSFT", "SNAP"]
df = pd.concat(map(fetch, tickers), axis=1)
AAPL AMZN INTC MSFT SNAP
Previous Close 167.37 1451.05 45.38 90.81 19.56
Open 169.79 1466.89 45.88 91.21 19.66
Bid 157.23 x 300 1,373.50 x 100 43.29 x 100 86.19 x 100 19.01 x 300
Ask 157.29 x 500 1,376.00 x 200 43.43 x 800 86.30 x 500 19.04 x 500
Day's Range 169.00 - 173.09 1,436.84 - 1,468.94 44.95 - 45.99 90.62 - 92.72 19.58 - 20.57
52 Week Range 134.84 - 180.10 833.50 - 1,498.00 33.23 - 50.85 63.62 - 96.07 11.28 - 29.44
Volume 51129225 5650685 23536349 27823161 40733751
Avg. Volume 33251246 4689059 34001746 28064627 25027667
关于python - 网络抓取数据并使用 pandas read_html 将其转换为数据框并将数据集合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48818431/
我正在看这个很好的答案:https://stackoverflow.com/a/58211397/3502164 . 解决方案的开头包括: library(httr) library(xml2) gr
我正在尝试从 wiki URL 中提取美国各州,为此我正在使用 Python Pandas。 import pandas as pd import html5lib f_states = pd.rea
无法从 1,2,3,4,5,6 列中获取 CCCCCCC ,将 pd.read_html 格式更改为 123456 后,我的 预期结果 应保留 1,2,3,4,5,6 HTML 代码 html = "
尝试抓取网页标题,但在名为“tweg.com”的网站上遇到问题 library(httr) library(rvest) page.url % html_text() # from rvest r
我想迭代本地计算机上的多个目录,每个目录都包含一个 HTML 文件。我将每个文件的路径存储在列表变量中,但现在我想迭代每个文件并将其读入诸如 pd.read_html 之类的内容,以便从 HTML 文
我正在尝试保存通过 pd.read_html() 引入的多个表中的数据。如果我打印 df,我可以看到它捕获了所有数据,但是在保存数据时它只将第一个表保存到 excel。如何将表格分开,以便我可以将每个
我正在使用以下 read_html() 调用来读取表格(在付费专区后面): df = pd.read_html('http://markets.ft.com/data/equities/tearshe
我的目标是编写一个解析器,从给定的维基百科 URL 收集所有表格数据。我一直在尝试使用 pandas.read_html 方法从示例维基百科页面收集所有表格。不幸的是,它似乎并没有从页面中收集所有表格
我正在使用 pandas.read_html 读取一个 xlm 文件并且几乎完美地工作,问题是该文件使用逗号作为小数点分隔符而不是点(read_html 中的默认值>). 我可以很容易地用一个文件中的
我有这个简单的一行脚本: from pandas import read_html print read_html('http://money.cnn.com/data/hotstocks/', fl
我使用 pd.read_html() 从网页导入表格,但 Python 没有将数据结构化为数据框,而是将其导入为列表。如何将数据导入为数据框?谢谢! 代码如下: import pandas as pd
我正尝试通过此 URL 在 Yahoo Finance 中获取主要世界指数的列表:https://finance.yahoo.com/world-indices .我首先尝试通过运行来获取表中的索引
我用这个代码 library(rvest) url<-read_html("http://en.wikipedia.org/wiki/Brazil_national_football_team") 我
我想检索以下网站上的表格并将它们存储在 Pandas 数据框中:https://www.acf.hhs.gov/orr/resource/ffy-2012-13-state-of-colorado-o
我无法找到如何正确索引我的数据框列 我尝试了一些方法,但找不到合适的方法 import pandas as pd df = pd.read_html('sbi.html') data = df[1]
我正在尝试使用 Pandas read_html 函数获取股票代码列表(而不是使用 Beautiful Soup 来抓取网络)。 我引用的网站是: https://en.wikipedia.org/w
我正在使用 bs4 解析一个 html 页面并提取一个表,下面给出了示例表,我试图将它加载到 pandas 中,但是当我调用 pddataframe = pd.read_html(LOTable,sk
我可以使用下面的代码从一个 URL 打印/获取 CSV 数据框 import bs4 as bs import pandas as pd dfs = pd.read_html('http://www.
我正在使用 pandas 来抓取网站,但它返回的是一整列 'nan' 值,而不是正确的值。我尝试更改几个 read_html() 参数,例如 flavor、converters 和 na_values
我注册通过提供商获取货币价格。当我使用 pd.read_html('URL') 时,出现 403 错误 - 权限被拒绝。所以我然后尝试通过这样做来模拟浏览器- import pandas as pd
我是一名优秀的程序员,十分优秀!