7

给定一个熊猫df,可以通过以下方式在做任何事情之前复制它:

df.copy()

如何使用 dask 数据框对象执行此操作?

4

4 回答 4

9

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

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

from copy import copy
df2 = copy(df)

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

于 2016-08-03T12:14:31.467 回答
1

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

您可以通过像@MRocklin 建议的那样复制它来从这些计算中分支,然后您正在处理一个全新的计算堆栈,或者您可以通过执行以下操作继续在同一个堆栈上:

df = df[df.columns]
于 2019-03-13T16:21:44.970 回答
0

您可能希望拥有两个版本的数据,一个在突变之后。copy您可以使用一种关于 dask 数据帧的方法;它可能与 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
于 2021-04-11T01:19:27.833 回答
-3

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

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)
于 2016-08-03T12:21:48.230 回答