【问题标题】:Keep Attributes attached to dataset in Pandas and Dask在 Pandas 和 Dask 中将属性附加到数据集
【发布时间】:2021-03-17 11:56:48
【问题描述】:

我一直在使用 Pandas 和 Dask。我还有许多自定义类和函数,我经常将它们用于不同的分析,我总是必须对其进行编辑以考虑 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)的情况下实现此目的的方法。结果,我想知道是否有一种方法可以在不创建新类(或包的静态版本)的情况下实现上述示例,或者是否有一种方法可以以非公共方式“分支”存储库(允许以便添加我的编辑,但仍然允许我轻松获得未来的功能而不会痛苦)?

【问题讨论】:

    标签: python pandas github repository dask


    【解决方案1】:

    在即将发布的 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}
    

    【讨论】:

    • 在 dask 数据帧上调用计算后,attrs 似乎没有被保留,例如df2 = ddf.compute()。也就是说,df2.attrs 将为空。
    猜你喜欢
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2019-07-28
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多