从URL输出特定行

时间:2016-11-23 20:53:41

标签: python csv url formatting

这是我使用的网址:

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

我需要像这样输出:

从USGS下载地震数据...... 最大规模的地震是: 时间:2016-10-17T06:14:58.370Z 纬度:-6.0526 经度:148.8617 地点:78公里WNW of Kandrian,Papua New Guinea 幅度:6.9 深度: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 个答案:

答案 0 :(得分:0)

也许您可以发布几行您正在使用的CSV以及更多代码,以便我们更好地了解数据以及您如何接近其分析。

我在网上发现了一个CSV,其中包含我将用于示例的地震数据行。使用pandas,您可以直接输入URL并轻松获取发生最大震级的行(我相信,这就是您正在做的事情)。

> 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方法返回系列中出现最大值的索引(在本例中为DataFrame中的幅度列)。有关详细信息,请参阅this answer。使用此索引,我们可以使用DataFrame.loc返回相应的行。