2016-11-23 13 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 場所:78キロKandrianの西北西、パプアニューギニア マグニチュード: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

'item'はあなたが出力する変数です(itemに含まれる行の5列目のデータは' item [4]です)? – PyNoob

+0

@PyNoobオンラインエクセル資料から取った様々な地震に関するデータの束。私は最高の大きさを持つものを選び出して、完全な行を読みやすい形式で出力したいと思います。アイテム[4]はマグニチュードカラムを参照していますが、実際には ' - 'である5番目の文字を参照しています。 –

+1

これはおそらく、より適切な答えのための 'item'構造とより多くのコードを提供できます。その間、私はパンダを使用するものを提供しました。 – PyNoob

答えて

0

おそらくあなたは、あなたが使用しているCSVの数行を投稿していくつかのことができますより多くのコードを使用してデータをよりよく理解し、分析に近づいています。

この例で使用する地震データの行を含むオンラインのCSVが見つかりました。パンダでは、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方法最大値(この場合は、データフレームの大きカラム)シリーズで発生するインデックスを返します。詳細については、this answerを参照してください。このインデックスでは、DataFrame.locを使用して対応する行を返すことができます。