gpt4 book ai didi

python - 字符串系列的最大 agg

转载 作者:行者123 更新时间:2023-12-04 09:42:01 27 4
gpt4 key购买 nike

如何在这样的字符串列中执行最大值?

        dataframe = pandas.DataFrame.from_dict(
{
"DEPARTMENT_ID": ["A", "B", "A", "B"],
"SLOT_BEGIN_TIME": ["2014-01-01", "2014-01-02", "2014-02-01", "2014-02-02"],
}
)
dataframe["MAX_TIME"] = dataframe.groupby(["DEPARTMENT_ID"])["SLOT_BEGIN_TIME"].max()
我得到了数据帧 ["MAX_TIME"] 的 NaN。
如果不可能在非数字系列上做 max,我可以编写自己的比较函数吗?

最佳答案

您应该使用 transform每当您想重新分配回数据框时:

dataframe['MAX_TIME'] = dataframe.groupby('DEPARTMENT_ID')['SLOT_BEGIN_TIME'].transform('max')

输出:
  DEPARTMENT_ID SLOT_BEGIN_TIME    MAX_TIME
0 A 2014-01-01 2014-02-01
1 B 2014-01-02 2014-02-02
2 A 2014-02-01 2014-02-01
3 B 2014-02-02 2014-02-02

说明 :
dataframe.groupby(["DEPARTMENT_ID"])["SLOT_BEGIN_TIME"].max()

给你一个由唯一 DEPARTMENT_ID 索引的系列:
DEPARTMENT_ID
A 2014-02-01
B 2014-02-02
Name: SLOT_BEGIN_TIME, dtype: object

请注意,系列的索引不同于 dataframe的索引。另一方面,当您进行系列分配时:
dataframe['SOME_COL'] = some_series

Pandas 将对齐两个系列的索引,在这种情况下,它们是不重叠的。因此,您会看到所有 NaN值。

关于python - 字符串系列的最大 agg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62286382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com