如何在初始化DataFrame时创建进度条?
我想在每次加载一个新的行到数据框(dataframe)时,获取当前的行数,这个数据是从一个.csv
文件中读取的:
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%的进度条。
1 个回答
6
你不能这样做——你需要修改 read_csv
函数,可能还要改其他的 pandas 函数。
编辑:
现在似乎可以通过 chunksize=rows_number
来实现。
仅使用 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 ---