2013-12-20 68 views
0

試圖查找數據。Python數據在哪裏

import pandas as pd 
import numpy as np 
import urllib 

url = 'http://cawcr.gov.au/staff/mwheeler/maproom/RMM/RMM1RMM2.74toRealtime.txt' 
urllib.urlretrieve(url,'datafile.txt') 

df = pd.read_table('datafile.txt', sep='\s+', header=None) 
df.columns = ['year', 'month', 'day', 'n1', 'n2', 'n3', 'n4', 'type'] 
df = df[df.year > 1978] 
df = df[df.type < 'Prelim_value:_OLR_&_NCEPop_wind'] 

tda1[] 
for a in range(df.shape[0],-1): 
#for a in range(firstrowofdata,lastrowofdata): 
#where is the first row, where is the last row, how do I find out through the 
#computer program. I want to do this with several different data sources. 
    print(df.iloc[a]) 
     if a < df.shape[0]+19: 
       tda1.append(0.0) 

第一個問題是如何去掉Python 2.7的頭文件。使用3.3時,上面的代碼工作正常,但它並沒有剝離2.7中的標題。在兩個版本的Python之間出現了很多問題......令人生氣。我安裝了2.7終端,最後晚上出去了,並且還更換了2.7外殼。一直在使用/厭倦2.7終端和我一直在使用的3.3 shell之間的差異。

一旦我從數據源下載數據,我打算在整個程序開發過程中使用許多不同來源之一,我希望能夠去除不必要的數據,然後對剩餘數據進行數學處理,並將結果與​​原始數據一起放入新列中。也就是說,2001年7月15日的數學計算將在2001年7月15日的原始數據旁邊。爲了實現這一點,我需要找出第一行剝離數據的位置,以便我可以設置for-loop(第一行, LASTROW)。直到我可以找出剝離數據的起始位置和剝離數據的結尾位置,我什麼也做不了。我如何檢索數字,告訴我第一行/最後一行的存儲位置?我被告知以前使用頭/尾或iloc。當我嘗試使用df.iloc時,我得到的是錯誤DataFrame沒有屬性'iloc'。當我嘗試使用df.head(0)或df.tail(-1)時,第一行/最後一行顯示爲頭部或尾部行的第一個數字。我怎樣才能得到這個數字,所以我實際上可以使用這個數字來設置計算機程序的第一行/最後一行數據。如果我嘗試:

n = df.head(0) 
print (n) 

它仍然給我同樣的事情。我如何剝離整個頭部/尾部線的行號。

其次,我想能夠執行數學計算,然後返回並添加到數據框的列。這是可能的...怎麼樣?我可以把數學計算的數據在正確的地方與在那裏我有存儲的原始數據,又名

df.columns = ['year', 'month', 'day', 'n1', 'n2', 'n3', 'n4', 'type', 'calc1', 'calc2', 'etc'] 

我希望數據都是與日期匹配了相同的數據幀。以2001年7月1日結束的日期爲例,如果我以5日均線爲例,我想用2001年7月1日的原始數據計算5日平均值。它只是使訪問數據更容易。

到目前爲止,我很難得到第一/最後一行能夠進一步進行這個項目。這就是我現在所擁有的一切。我一直試圖以零運氣取得進展。

+0

我不知道很多關於熊貓,但是你的第一個循環可能行不通對。 'range(df.shape [0], - 1)'將是一個空序列(除非'df.shape [0]'是否定的,我不知道那意味着什麼)。如果你想從'df.shape [0]'迭代到零,你需要給'range'一個負面的步驟。 – Blckknght

+0

不知道這個問題與您已經問過的問題是不同的:http://stackoverflow.com/questions/20692140/python-pandas-find-starting-ending-row-and-rounding-numbers?rq=1 –

+0

This有幾個問題。最好保持是針對單個問題/問題的SO線程。其次,你的代碼不運行。請參閱http://sscce.org/瞭解它爲什麼應該這樣。最後,請展示您嘗試實現的示例輸出,即使它依賴假冒/合成/玩具數據。 –

回答

0

您應該跳過前兩行明確(它混淆這不是必需的蟒蛇3):

df = pd.read_csv('datafile.txt', sep='\s+', header=None, skiprows=2)