Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Python/tqdm)在使用Pandas时在计时器中获取所有零_Python_Tqdm - Fatal编程技术网

(Python/tqdm)在使用Pandas时在计时器中获取所有零

(Python/tqdm)在使用Pandas时在计时器中获取所有零,python,tqdm,Python,Tqdm,每当文件加载到pandas中时,我都会尝试显示进度条。但我得到的只是这个 0it [00:00, ?it/s] 这是我正在使用的代码。 我根据我找到的一些例子导入TQM from tqdm import tqdm ... def function(self): params = self.getGuiParams() filename = params['fileNameLineEdit'] keyname = params['dataSetNameLineEdit'

每当文件加载到pandas中时,我都会尝试显示进度条。但我得到的只是这个

0it [00:00, ?it/s]
这是我正在使用的代码。
我根据我找到的一些例子导入TQM

from tqdm import tqdm
...

def function(self):
    params = self.getGuiParams()
    filename = params['fileNameLineEdit']
    keyname = params['dataSetNameLineEdit']
    try:
        print('Loading data file: ' + str(filename))
        self.datakeys.append(keyname)
        chunksize = 50000
        df = tqdm(pd.read_csv(filename, header=[0, 1], chunksize=chunksize, iterator=True))
        self.data[keyname] = spectral_data(df)
    except Exception as e:
        print('Problem reading data: {}'.format(e))

tqdm
需要迭代器。使用
read_csv
iterator=True
选项时,您将结果
TextFileReader
对象分配回
df
,而不实际对其进行迭代

尝试以下方法:

tfr = pd.read_csv(filename, header=[0, 1], chunksize=chunksize, iterator=True
with tqdm() as pbar:
  # do something with the chunk
  pbar.update()

我从未使用过TQM,因此可能无法立即使用-您可能需要计算文件大小以及需要多少块等。

TQM
需要迭代器。使用
read_csv
iterator=True
选项时,您将结果
TextFileReader
对象分配回
df
,而不实际对其进行迭代

尝试以下方法:

tfr = pd.read_csv(filename, header=[0, 1], chunksize=chunksize, iterator=True
with tqdm() as pbar:
  # do something with the chunk
  pbar.update()

我从未使用过TQM,因此可能无法立即使用-您可能需要计算文件大小和需要的块数等。

除了手动更新
TQM
进度条的另一个答案之外,我想建议一个更直观的替代方法:

text\u file\u reader=pd.read\u csv(文件名,chunksize=chunksize,迭代器=True)
对于TQM(文本文件读取器)中的块:
#chunk是一个pd.DataFrame,具有*chunksize*行pd.read\u csv(文件名)
#(最后一个块的行可能更少)
#用这块石头做点什么
这将不会给你一个标准的进度条慢慢填满100%。相反,您将获得关于已经处理了多少块以及它们的平均处理时间的信息:如:

18/? [00:22<00:00, 1.29s/it]

18/?[00:22除了手动更新
tqdm
进度条的另一个答案之外,我想建议一个更直观的替代方法:

text\u file\u reader=pd.read\u csv(文件名,chunksize=chunksize,迭代器=True)
对于TQM(文本文件读取器)中的块:
#chunk是一个pd.DataFrame,具有*chunksize*行pd.read\u csv(文件名)
#(最后一个块的行可能更少)
#用这块石头做点什么
这不会给你一个标准的进度条,慢慢地填充到100%。相反,你会得到关于已经处理了多少块以及它们的平均处理时间的信息:像这样:

18/? [00:22<00:00, 1.29s/it]

18/?[00:22我收到一个
AttributeError:'TextFileReader'对象没有属性'columns'
错误。这意味着什么?在不了解更多信息的情况下,TextFileReader对象没有名为'columns'的属性,但您正试图通过
tfr访问它。columns
查看
TextFileReader
的文档,以及如何使用它对它从文件中读取的块进行评级。我还想了解如何实现这一点。我还想使用
tqdm
加载一个hdf5文件,该文件带有
pd.read\u hdf
。有人知道了吗?我得到一个
AttributeError:'TextFileReader'对象没有属性“columns”
错误。Wh这意味着什么?在不了解更多信息的情况下,TextFileReader对象没有名为“columns”的属性,但您正试图通过
tfr访问它。columns
查看
TextFileReader
的文档,以及如何在它从文件中读取的块上使用迭代。我还想知道如何实现这一点因此,我想使用
tqdm
加载带有pandas with
pd.read\u hdf
的hdf5文件。有人知道了吗?谢谢你添加了一个额外的答案。这是一个老问题,但你的解决方案绝对聪明。感谢你添加了一个额外的答案。这是一个老问题,但你的解决方案绝对聪明R