寄木細工のファイルをデータフレームに変換するときに、ファイルタイプに問題があります。
そうです
bucket = 's3://some_bucket/test/usages'
import pyarrow.parquet as pq
import s3fs
s3 = s3fs.S3FileSystem()
read_pq = pq.ParquetDataset(bucket, filesystem=s3).read_pandas()
私がするときread_pq
、私は得る
pyarrow.Table
_COL_0: decimal(9, 0)
_COL_1: decimal(9, 0)
_COL_2: decimal(9, 0)
_COL_3: decimal(9, 0)
私がするときdf = read_pd.to_pandas(); df.dtypes
、私は得る
_COL_0 object
_COL_1 object
_COL_2 object
_COL_3 object
dtype: object
元のデータはすべて整数です。pandas データフレーム内のオブジェクトを操作すると、操作が非常に遅くなります。
- 寄木細工の列を int または pandas の float として読み取られる形式に変換するにはどうすればよいですか?
- または、上記のようにパンダのデータフレームを操作して使用するのが最善
pd.to_numeric
ですか? - それとも、元のデータ形式に問題があり
decimal(9, 0)
ますか?
または、パンダのデータフレームで直接変換するのが最善ですか?
私が試した:次read_pq.column('_COL_0').cast('int32')
のようなエラーをスローします
No cast implemented from decimal(9, 0) to int32