web-dev-qa-db-ja.com

夕暮れのデータフレームの形状を取得するにはどうすればよいですか?

.shapeを実行すると、次のエラーが表示されます。

AttributeError: 'DataFrame'オブジェクトには属性 'shape'がありません

代わりに形状を取得するにはどうすればよいですか?

10
user1559897

列数を直接取得できます

len(df.columns)  # this is fast

データフレーム自体でlenを呼び出すこともできますが、これにより計算がトリガーされることに注意してください。

len(df)  # this requires a full scan of the data

Dask.dataframeは、最初にすべてを読み取らない限り、データに含まれるレコードの数を知りません。

21
MRocklin

シェイプを使用すると、次のことができます

a = df.shape
a[0].compute(),a[1]

これは、パンダで示されているように、形状を購入します

1
tinashe matambo

形状を取得するには、次の方法を試してください。

 dask_dataframe.describe().compute()  

インデックスの「count」列は行数を示します

 len(dask_dataframe.columns) 

これにより、データフレームの列数が得られます

1

まあ、これは非常に古い質問であることは知っていますが、私は同じ問題を抱えていて、ここで登録したいすぐに使えるソリューションを得ました。

あなたのデータを考慮すると、それはもともと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}")

これが他の誰かにも役立つことを願っています。

0
iperetta