.shapeを実行すると、次のエラーが表示されます。
AttributeError: 'DataFrame'オブジェクトには属性 'shape'がありません
代わりに形状を取得するにはどうすればよいですか?
列数を直接取得できます
len(df.columns) # this is fast
データフレーム自体でlenを呼び出すこともできますが、これにより計算がトリガーされることに注意してください。
len(df) # this requires a full scan of the data
Dask.dataframeは、最初にすべてを読み取らない限り、データに含まれるレコードの数を知りません。
シェイプを使用すると、次のことができます
a = df.shape
a[0].compute(),a[1]
これは、パンダで示されているように、形状を購入します
形状を取得するには、次の方法を試してください。
dask_dataframe.describe().compute()
インデックスの「count」列は行数を示します
len(dask_dataframe.columns)
これにより、データフレームの列数が得られます
まあ、これは非常に古い質問であることは知っていますが、私は同じ問題を抱えていて、ここで登録したいすぐに使えるソリューションを得ました。
あなたのデータを考慮すると、それはもともとCSVのようなファイルに保存されているのだろうか。そのため、私の状況では、そのファイルの行(マイナス1、ヘッダー行)を数えるだけです。 この回答はこちら に触発され、これは私が使用しているソリューションです:
import dask.dataframe as dd
from itertools import (takewhile,repeat)
def rawincount(filename):
f = open(filename, 'rb')
bufgen = takewhile(lambda x: x, (f.raw.read(1024*1024) for _ in repeat(None)))
return sum( buf.count(b'\n') for buf in bufgen )
filename = 'myHugeDataframe.csv'
df = dd.read_csv(filename)
df_shape = (rawincount(filename) - 1, len(df.columns))
print(f"Shape: {df_shape}")
これが他の誰かにも役立つことを願っています。