将属性附加到 Pandas 和 Dask 中的数据集
Keep Attributes attached to dataset in Pandas and Dask
我一直使用 Pandas 和 Dask。我还有一些自定义的 classes 和函数,我经常将它们用于不同的分析,我总是不得不编辑它们以说明 Dask 或 Pandas。我一直发现自己处于这样一种情况,我希望我可以为我正在分析的数据集分配属性,最大限度地减少来自 dask 的 compute
命令,并且还可以在我切换数据类型时更轻松地管理功能。实际上类似于:
import pandas as pd
import dask.dataframe as dd
from pydataset import data
df = data('titanic')
setattr(df, 'vals12', 1)
test = dd.from_pandas(df, npartitions = 2)
test.vals12 #would still contain the attribute vals12
df = test.compute()
df.vals12 #would still contain the attribute vals12
但是,我不知道有什么方法可以在不编辑基础包的情况下实现这一点 (Pandas / Dask)。因此,我想知道是否有一种方法可以在不创建新的 class(或包的静态版本)的情况下实现上述示例,或者是否有一种方法可以将回购“分支”为非- public 方式(允许添加我的编辑,但仍然允许我轻松获得未来的功能)?
在即将发布的 Dask 版本中,您将能够使用 pandas 1.0 中最近的 attrs
功能来执行此操作。现在,您可以从 Github pip install dask 来使用此功能。
import pandas as pd
import dask.dataframe as dd
df = pd.DataFrame({
"a":[0,1,2],
"b":[2,3,4]
})
df.attrs["vals12"] = 1
ddf = dd.from_pandas(df, npartitions=2)
ddf.attrs
{'vals12': 1}
我一直使用 Pandas 和 Dask。我还有一些自定义的 classes 和函数,我经常将它们用于不同的分析,我总是不得不编辑它们以说明 Dask 或 Pandas。我一直发现自己处于这样一种情况,我希望我可以为我正在分析的数据集分配属性,最大限度地减少来自 dask 的 compute
命令,并且还可以在我切换数据类型时更轻松地管理功能。实际上类似于:
import pandas as pd
import dask.dataframe as dd
from pydataset import data
df = data('titanic')
setattr(df, 'vals12', 1)
test = dd.from_pandas(df, npartitions = 2)
test.vals12 #would still contain the attribute vals12
df = test.compute()
df.vals12 #would still contain the attribute vals12
但是,我不知道有什么方法可以在不编辑基础包的情况下实现这一点 (Pandas / Dask)。因此,我想知道是否有一种方法可以在不创建新的 class(或包的静态版本)的情况下实现上述示例,或者是否有一种方法可以将回购“分支”为非- public 方式(允许添加我的编辑,但仍然允许我轻松获得未来的功能)?
在即将发布的 Dask 版本中,您将能够使用 pandas 1.0 中最近的 attrs
功能来执行此操作。现在,您可以从 Github pip install dask 来使用此功能。
import pandas as pd
import dask.dataframe as dd
df = pd.DataFrame({
"a":[0,1,2],
"b":[2,3,4]
})
df.attrs["vals12"] = 1
ddf = dd.from_pandas(df, npartitions=2)
ddf.attrs
{'vals12': 1}