我从Pandas DataFrame创建了Dask DataFrame,并在其上应用了一些函数。当我尝试使用
查看数据时 df.head()
花了太多时间。如何查看数据框?
答案 0 :(得分:2)
这实际上取决于数据框背后的计算。
df.head()
命令仅执行从数据帧中获取几行数据所需的操作。这通常非常快。例如,如果我们从Parquet或CSV文件中读取大型数据帧,那么我们只需要加载第一个数据块以获得前几行。
df = dd.read_csv('...')
df.head() # this is relatively fast
然而,如果我们的数据帧更复杂,可能是懒惰的shuffle或set_index操作的结果,那么我们可能真的需要在我们获得前几行之前读取和处理所有数据。
df = df.set_index('some-column')
df = df.merge(some_other_df)
df.head() # this is slow, because it has to do the set_index and merge
您始终可以便宜地查看元数据(列名,类型,任务数和分区数)。
>>> df
Dask DataFrame Structure:
close high low open
npartitions=505
2008-01-02 09:00:00 float64 float64 float64 float64
2008-01-03 09:00:00 ... ... ... ...
... ... ... ... ...
2009-12-31 09:00:00 ... ... ... ...
2009-12-31 16:00:00 ... ... ... ...
Dask Name: from-delayed, 1010 tasks
如果您的数据适合RAM(或者如果您在群集上,则分布式RAM),那么您还应该坚持使用内存。这将使事情变得非常快。
df = df.persist()
但是,如果你没有有足够的内存,那么这可能会降低你的机器速度。