2016-07-07 75 views
0

我有一些Unicode字符串数组,我需要将其移出并保存为浮点数。迭代通过这个数组的低温,当前温度和高温最简单的方法是什么?代码如下:通过Unicode数组对浮点值进行迭代

import pandas as pd 
from bs4 import BeautifulSoup 
import requests 
import numpy as np 

#Arkansas State Plant Board Weather Web data 
url1 = "http://170.94.200.136/weather/Inversion.aspx" 
response1 = requests.get(url1) 

soup1 = BeautifulSoup(response1.content) 
table1 = soup1.find("table", id="MainContent_GridView1") 

data1 = pd.read_html(str(table1))[0] 

array1 = np.array(data1[0:5]) 
+1

为什么Unicode在这里相关? – Tim

+2

这并未显示OP已尝试的示例。 – cwallenpoole

回答

1

首先,修改您的代码以正确解析DataFrame标头。

data1 = pd.read_html(str(table1),header=0)[0]

然后,转换需要浮动,例如列。

data1['Low Temp (°F)'] = data1['Low Temp (°F)'].astype(float)

可以在这样的大熊猫选择列的子集:

data1[['Station','Low Temp (°F)','High Temp (°F)','Current Temp (°F)']].head() 

    Station Low Temp (°F) High Temp (°F) Current Temp (°F) 
0 Arkansas 74.9 88.9 88.9 
1 Ashley 75.0 92.0 91.6 
2 Bradley -9.6 91.5 91.4 
3 Chicot -40.2 -40.1 -40.2 
4 Cleveland 73.7 91.1 91.0 

然后,您可以使用iterrows()通过数据帧进行迭代。

+0

当我尝试将列转换为浮点数时,我得到: KeyError:'低温(\ xc2 \ xb0F)' –

+0

代码在Python 3中工作,您没有提到您的Python版本。 尝试重命名列并删除学位符号: 'data1.columns = ['Station','Low Temp(F)',...] – user666