我正在从numpy
数组构造一个任务DataFrame
,然后我想从pandas
Series
添加一列。
不幸的是,生成的 Dataframe 包含NaN
值,我无法理解错误所在。
from dask.dataframe.core import DataFrame as DaskDataFrame
import dask.dataframe as dd
import pandas as pd
import numpy as np
xy = np.random.rand(int(3e6), 2)
c = pd.Series(np.random.choice(['a', 'b', 'c'], int(3e6)), dtype='category')
# alternative 1 -> # lot of values of x, y are NaN
table: DaskDataFrame = dd.from_array(xy, columns=['x', 'y'])
table['c'] = dd.from_pandas(c, npartitions=1)
print(table.compute())
# alternative 2 -> # lot of values of c are NaN
table: DaskDataFrame = dd.from_array(xy, columns=['x', 'y'])
table['c'] = dd.from_pandas(c, npartitions=table.npartitions)
print(table.compute())
任何帮助都很感激。
1条答案
按热度按时间e4eetjau1#
这都是因为在进行分区时c和xy中的元素数量不匹配。您可以尝试使用dd. from_panda而不是dd. from_array来创建DaskDataFrame。
该函数返回: