如何复制一个dask数据帧?

时间:2016-08-03 11:39:36

标签: python dask

鉴于pandas df可以通过以下方式复制它:

df.copy()

如何使用dask dataframe对象执行此操作?

4 个答案:

答案 0 :(得分:6)

dask.dataframe对象的变异很少,因此很少需要。

话虽如此,你可以安全地复制对象

from copy import copy
df2 = copy(df)

没有dask.dataframe操作会改变数据框的任何字段,所以这就足够了。

答案 1 :(得分:0)

Dask创建了惰性计算的内部管道。数据框的每个版本都是另一层计算,直到稍后才进行计算。

您可以通过复制这些计算来进行分支,如@MRocklin所建议的那样进行复制,然后使用全新的计算堆栈,或者可以执行以下操作在同一堆栈上继续操作:

df = df[df.columns]

答案 2 :(得分:0)

您可能希望拥有两个版本的数据,一个是在突变之后。您可以使用 dask 数据帧上的 copy 方法;它可能与 python 的 copy.copy 相同,但如果(对我而言)使用库维护者的版本感觉更安全。

import dask.dataframe as dd
ddf = dd.from_pandas(pd.DataFrame({'z': [1, 2]}), npartitions=1)
ddf2 = ddf.copy()
ddf2['z'] -= 10

print(ddf.compute())
print()
print(ddf2.compute())
   z
0  1
1  2

   z
0 -9
1 -8

答案 3 :(得分:-1)

将其写入文件并再次阅读:

import os
import dask.dataframe as dd

df = <Initial Dask Dataframe to be copied>
file = 'sample.csv'
df.to_csv(file)
df2 = df.read_csv(file)
os.remove(file)