Python Dask数据帧的引导示例

Python Dask数据帧的引导示例,python,jupyter,dask,Python,Jupyter,Dask,我有一个包含所有二进制变量的大数据帧,一个稀疏矩阵,它被转换成pandas,以便我以后可以转换成Dask。尺寸为39888 x 52034 我试图创建一个更大的数据帧,它由原始数据帧中的10000个不同的引导样本组成。每个样本的大小与原始数据相同。最后一个数据帧还将有一个列,用于跟踪该行来自哪个引导样本 这是我的密码: # sample df df_pd = pd.DataFrame(np.array([[0, 0, 0, 0], [1, 0, 0, 0], [0, 1, 0, 1]]),

我有一个包含所有二进制变量的大数据帧,一个稀疏矩阵,它被转换成pandas,以便我以后可以转换成Dask。尺寸为39888 x 52034

我试图创建一个更大的数据帧,它由原始数据帧中的10000个不同的引导样本组成。每个样本的大小与原始数据相同。最后一个数据帧还将有一个列,用于跟踪该行来自哪个引导样本

这是我的密码:

# sample df
df_pd = pd.DataFrame(np.array([[0, 0, 0, 0], [1, 0, 0, 0], [0, 1, 0, 1]]),
                   columns=['a', 'b', 'c'])
# convert into Dask dataframe
df_dd = dd.from_pandas(df_pd, npartitions=4)

B = 2  # eventually 10,000
big_df = dd.from_pandas(pd.DataFrame([]), npartitions = 1000)
for i in range(B+1):
    data = df_dd.sample(frac = 1, replace = True, random_state=i)
    data["sample"] = i
    big_df.append(data)
循环产生的数据帧是空的,但我不知道为什么。更具体地说,如果我查看我得到的big_df.head,UserWarning:head的元素不足。请求5个元素,只有0个元素可用。尝试将较大的“npartitions”传递到“head”。如果我尝试printbig_df,我会得到,ValueError:没有要连接的对象

我猜这条线至少有一个问题,big_df=dd.from_pandaspd.DataFrame[],npartitions=1000,但我不知道


如果我需要澄清什么,请告诉我。我对Python有些陌生,甚至对Dask也比较新,所以即使是一些小提示或反馈,如果不能完全回答这个问题,我也将不胜感激。谢谢

您最好使用dask.dataframe.concat并将数据帧合并在一起-仍然存在一些问题

append创建一个新对象,因此必须保存该对象->df=df.APPENDATA

尝试调用big_df.headnpartitions=-1,它使用所有分区获得5行。此处的追加/合并可以创建少于5行的小分区

特别是在跳到达斯克之前,最好先和熊猫一起写这篇文章。您可能还对通读以下内容感兴趣:


关于第三点,你的意思是我应该使用熊猫创建大df,然后将其转换为Dask吗?不,我的意思是首先尝试使用熊猫做所有事情,并使其功能化。明白了。非常感谢。