从URL

2016-11-23 22 views
0

,输出特定列。这是我使用的URL:从URL

http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.csv

,我需要它输出这样的:

从USGS ... 下载地震资料最大级的地震是: 时间:2016-10-17T06:14:58.370Z 纬度:-6.0526 经度:148.8617 地点:Kandrian的78公里WNW,巴布亚新几内亚 震级:6.9 部门H:35

我已经有一个功能,读取并解码线 这有点代码:

def online_display_largest_quake(): 
print('Downloading earthquake data from USGS ...') 

earthquakes = get_text_lines_from_url('http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.csv') 
print (earthquakes) 
best_mag = 0 
best_item = [] 

for (item) in earthquakes[1:]: 

    if float(item[4]) > best_mag: 
     best_mag = float(str(item[4])) 
     best_item = item 

earthquake_output(best_item) 
+1

'item'是你输出的变量(因此,item [4]是包含在item中的第5列的数据)? – PyNoob

+0

@PyNoob从一个在线excel文档中获取一系列关于不同地震的数据。我想选出最大幅度的图像,然后以可读格式输出整行。所以item [4]指的是量级栏,但它实际上指的是' - '这是我卡住的地方 –

+1

也许你可以提供'item'的结构和更多定制答案的代码。同时,我提供了一种使用熊猫的方法。 – PyNoob

回答

0

也许你可以张贴CSV几行你使用一些更多的代码可以让我们更好地了解数据以及您如何接近其分析。

我在网上发现了一个包含地震数据行的CSV文件,我将用它作为示例。通过熊猫,你可以直接输入一个网址,轻松获得发生最大震级的行(我相信这就是你正在做的)。

> import pandas as pd 

> url = 'http://itp.nyu.edu/~cm2897/blog/wp-content/uploads/2012/03/global-earthquakes.csv' 
> df = pd.read_csv(url) 
> df.head() 
    year month day  time latitude longitude magnitude depth 
0 1973  1 1 34609.8  -9.21  150.63  5.3  41 
1 1973  1 1 52229.8 -15.01 -173.96  5.0  33 
2 1973  1 1 114237.5 -35.51  -16.21  6.0  33 
3 1973  1 2 5320.3  -9.85  117.43  5.5  66 
4 1973  1 2 22709.2  1.03  126.21  5.4  61 

> df.loc[df['magnitude'].idxmax()] 
year   2004.00 
month   12.00 
day   26.00 
time   5853.45 
latitude  3.30 
longitude  95.98 
magnitude  9.00 
depth   30.00 
Name: 48506, dtype: float64 

熊猫Series.idxmax方法返回其中的最大值在一个系列发生指数(在这种情况下,从数据帧的大小列)。有关更多信息,请参阅this answer。有了这个索引,我们可以使用DataFrame.loc来返回相应的行。