2014-07-14 40 views
4

我想,當我加載.csv文件轉換成一個數據幀一個新創建的每個時間得到行數:如何在DataFrame初始化時創建進度條?

def file_len(fname): 
    with open(fname) as f: 
     for i, l in enumerate(f): 
      pass 
    return i + 1 

csv_path = "C:/...." 
max_length = file_len(csv_path) 

data = read_csv(csv_path, sep=';', encoding='utf-8') 

與該代碼我得到行的最大數目,但我不知道如何獲取數據幀中的行數,每次創建一行。 我想用它們來製作一個0-100%的進度條

回答

5

你不能這樣做 - 你必須修改read_csv函數和其他熊貓的函數。


編輯:

似乎可以博與現在完成了。

僅使用iterator=True對我無效 - 或者它可能需要更多行。

由於Jeff

試試這個

import pandas as pd 

from StringIO import StringIO 

data = """A,B,C 
foo,1,2,3 
bar,4,5,6 
baz,7,8,9 
""" 

reader = pd.read_csv(StringIO(data), chunksize=1) 

for x in reader: 
    print x 
    print '--- next data ---' 

結果:

 A B C 
foo 1 2 3 
--- next data --- 
    A B C 
bar 4 5 6 
--- next data --- 
    A B C 
baz 7 8 9 
--- next data --- 
+0

好了,你那種可能,通過迭代''read_csv(... CHUNKSIZE = 10 )('在迭代中做某事;效率不高,儘管 – Jeff

+0

@Jeff,我沒有'chunksize = 10'嘗試它 - 只有'iterator = True'。但是,也許你是對的。我測試它。 – furas

+0

這些實質上是等價的(''iterator = True''意味着''chunksize = 1'') – Jeff