【问题标题】:Control dtype of aggregation results控制聚合结果的dtype
【发布时间】:2017-02-06 22:44:34
【问题描述】:

当我这样做时

df.groupby('id').aggregate({
    "timestamp": {
        "len" : len,
        ...
    },
    ....
})

我得到 datetime64 类型的 timestamp.len 列,显然,不是我想要的。

我该如何控制?

我大概可以做一些后期处理,比如

res[('timestamp','len')].astype(int)

但我宁愿马上得到正确的类型。

【问题讨论】:

    标签: python-2.7 pandas group-by aggregate-functions


    【解决方案1】:

    是的!这很奇怪。
    请改用size

    df = pd.DataFrame(dict(id=['a', 'a', 'b', 'b'],
                           timestamp=pd.date_range('2016-09-29', periods=4)))
    
    df.groupby('id').aggregate({'timestamp': {'len': 'size'}})
    

    【讨论】:

    猜你喜欢
    • 2017-08-19
    • 2016-07-21
    • 2018-06-18
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多