不明白為什么我不能用我抓取的這些資料進行最簡單的資料操作。我嘗試了各種方法來操縱資料,但都出現了同樣的錯誤。我的資料是否還在資料框中?我說不出來。
import pandas as pd
from urllib.request import Request, urlopen
req = Request('https://smallcaps.com.au/director-transactions/'
, headers={'User-Agent': 'Mozilla/5.0'})
trades = urlopen(req).read()
df = pd.read_html(trades)
print(df) #<-- This line prints the df and works fine
df.drop([0, 1]) #--> THis one shows the error below
print(df)
錯誤:
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\Scraper\DirectorTrades.py", line 10, in <module>
df.drop([0, 1])
AttributeError: 'list' object has no attribute 'drop'
uj5u.com熱心網友回復:
如前所述,主要問題是pandas.read_html()回傳資料幀串列,您必須按您喜歡選擇的索引指定。
我的資料是否還在資料框中?
df = pd.read_html(trades)不,不是,因為它提供了資料框串列df = pd.read_html(trades)[0]是的,這將為您提供幀串列中的第一個資料幀
例子
import pandas as pd
from urllib.request import Request, urlopen
req = Request('https://smallcaps.com.au/director-transactions/'
, headers={'User-Agent': 'Mozilla/5.0'})
trades = urlopen(req).read()
df = pd.read_html(trades)[0]
df.drop([0, 1])
df
輸出
| 日期 | 代碼 | 公司 | 導向器 | 價值 | |
|---|---|---|---|---|---|
| 0 | 27/4/2022 | 血沉 | 星辰資源 | L.佩雷拉 | ↑1,075 美元 |
| 1 | 27/4/2022 | 過年 | 巷道資源 | S.比澤爾 | ↑126,750 |
| 2 | 26/4/2022 | FGX | 下一代投資公司 | G.威爾遜 | ↑$13,363 |
| 3 | 26/4/2022 | 清潔發展機制 | 韻律資本 | J·韋伯斯特 | ↑$25,110 |
| 4 | 26/4/2022 | 泰克 | 索尼科技 | A.韋斯利茨 | ↑$35,384 |
| 5 | 26/4/2022 | FGX | 下一代投資公司 | K.索利 | ↑7,980 美元 |
...
uj5u.com熱心網友回復:
read_html回傳資料框串列。
嘗試:
dfs = pd.read_html(trades)
dfs = [df.drop([0,1]) for df in dfs]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466689.html
上一篇:使用熊貓根據另一列的值更改列的值
