2013-02-18 60 views
2

我剛剛掌握了熊貓(這很棒),我需要做的是從壓縮基因組文件中讀取ftp站點到熊貓數據框中的文件。 這是我嘗試過,並獲得一噸的錯誤:使用大熊貓通過FTP檢索文件

from pandas.io.parsers import * 

chr1 = 'ftp://ftp.ncbi.nih.gov/snp/organisms/human_9606/chr_rpts/chr_1.txt.gz' 

CHR1 = read_csv(chr1, sep='\t', compression = 'gzip', skiprows = 10) 

print type(CHR1) 
print CHR1.head(10) 

理想我想這樣做:

from pandas.io.data import * 
AAPL = DataReader('AAPL', 'yahoo', start = '01/01/2006') 
+0

我不認爲熊貓足夠智能,可以使用FTP檢索文件。 – 2013-02-18 21:01:08

回答

1

這個問題的有趣的部分是如何流(GZ)從FTP文件,該文件討論here,在那裏它聲稱,以下將在Python工作3.2(但won't in 2.x, nor will it be backported),和我的系統是這樣的話:

import urllib.request as ur 
from gzip import GzipFile 

req = ur.Request(chr1) # gz file on ftp (ensure startswith 'ftp://') 
z_f = ur.urlopen(req) 

# this line *may* work (but I haven't been able to confirm it) 
# df = pd.read_csv(z_f, sep='\t', compression='gzip', skiprows=10) 

# this works (*) 
f = GzipFile(fileobj=z_f, mode="r") 
df = pd.read_csv(f, sep='\t', skiprows=10) 

(*)這裏的f是「類文件」,因爲我們可以執行readline(逐行讀取),而不必下載/打開整個文件。

注:我無法得到ftplib libraryreadline,它是否應該。