5

私は Dask データフレームを持っています。その 1 つの列には浮動小数点数の numpy 配列が含まれています。

import dask.dataframe as dd
import pandas as pd
import numpy as np

df = dd.from_pandas(
    pd.DataFrame(
        {
            'id':range(1, 6),
            'vec':[np.array([1.0, 2.0, 3.0, 4.0, 5.0])] * 5
        }), npartitions=1)

df.compute()

   id                        vec
0   1  [1.0, 2.0, 3.0, 4.0, 5.0]
1   2  [1.0, 2.0, 3.0, 4.0, 5.0]
2   3  [1.0, 2.0, 3.0, 4.0, 5.0]
3   4  [1.0, 2.0, 3.0, 4.0, 5.0]
4   5  [1.0, 2.0, 3.0, 4.0, 5.0]

これを寄木細工として書き出そうとすると、エラーが発生します。

df.to_parquet('somefile')
....
Error converting column "vec" to bytes using encoding UTF8. Original error: bad argument type for built-in operation

これは、「vec」列の型が「object」であるため、寄木細工のシリアライザーがそれを文字列として書き込もうとするためだと思います。列が float の配列であることを Dask DataFrame またはシリアライザに伝える方法はありますか?

4

1 に答える 1