https://m-selig.ae.illinois.edu/ads/coord/ag25.dat
我正在嘗試從 UIUC 翼型資料庫網站上抓取資料,但所有鏈接的格式都與另一個不同。我嘗試使用 pandas 讀取表并用于skiprows
跳過 url 的非資料點部分,但每個 url 都有不同的行數要跳過。我怎樣才能設法只讀取 url 中的數字?
uj5u.com熱心網友回復:
使用pd.read_fwf()它將固定寬度格式化行的表格讀入DataFrame:
至于如何處理不同行跳過的不同檔案,我們可以做的是,一旦檔案被讀取,只需計算行數,直到有一行只包含數值。然后將其輸入skiprows引數。
import pandas as pd
from io import StringIO
import requests
url = 'https://m-selig.ae.illinois.edu/ads/coord/ag25.dat'
response = requests.get(url).text
for idx, line in enumerate(response.split('\n'), start=1):
if all([x.replace('.','').isdecimal() for x in line.split()]):
break
skip = idx
df = pd.read_fwf(StringIO(response), skiprows=skip, header=None)
輸出:
print(df)
0 1
0 1.000000 0.000283
1 0.994054 0.001020
2 0.982050 0.002599
3 0.968503 0.004411
4 0.954662 0.006281
.. ... ...
155 0.954562 0.001387
156 0.968423 0.000836
157 0.982034 0.000226
158 0.994050 -0.000374
159 1.000000 -0.000680
[160 rows x 2 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/492304.html
