Why doesn't Dask dataframe have a shape attribute?
This has been discussed in dask. First I'll point out that in the python spec, len() is always supposed to return a concrete integer. Dask respects this, and so len(df) blocks, unlike most operations on a data-frame. There is no such constraint on .size, which is therefore lazy.
The metadata of the dataframe is immediately available, however, the number, names and types of the columns are known without computing any of the data. Therefore, .shape would be a combination of a known value and either a lazy or a slowly-computed concrete value. This doesn't seem necessary.
Just out of curiosity, if dask enables both len() and size, why is there not shape as well?