【问题标题】:dask groupby aggregation correct usagedask groupby 聚合正确用法
【发布时间】:2018-04-07 22:55:42
【问题描述】:

我想了解以下代码中的不同行为。

这是使用 dask/distributed/ubuntu 16.04 全新 conda 安装

us=dd.read_parquet("/home/.......",["date","num_25","num_100","num_unq"]).persist()
g=us.groupby("us.date.dt.week)

x=g["num_25","num_100","num_unq"].mean()  # Works !
x=client.persist(x)                       #

x=g["num_25","num_100","num_unq"].var()   #  NOT WORKING
x=client.persist(x)                       #

x=g["num_25","num_100","num_unq"].std()   #  NOT WORKING
x=client.persist(x)                       #

x=g.num_100.var()                         #  Works
x=client.persist(x)

我可以用平均值/最小值/最大值聚合上例中的列组。

但是,例如std/var 我需要分解并一次计算一列。

在它不起作用的情况下,堆栈会报告一个键错误 ("num_25","num_100","num_unq")

【问题讨论】:

    标签: python distributed dask


    【解决方案1】:

    在 Pandas/Dask.dataframe 中,您可以通过传递列列表来选择多个列。

    df[['a', 'b', 'c']].var()  # good!
    df['a', 'b', 'c'].var()    # bad.
    

    【讨论】:

    • 这行得通,但我仍然无法弄清楚令人困惑的行为。在所有情况下都是对的或错的。虽然我承认这是正确的做法。我现在应该知道了,但不知何故,我预计如果我对括号不小心的话,它会失败。谢谢。 JC
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 2014-11-23
    相关资源
    最近更新 更多