gpt4 book ai didi

python - 从 pandas dataframe groupby 中提取带有计数的新列

转载 作者:行者123 更新时间:2023-11-28 21:40:09 26 4
gpt4 key购买 nike

我正在处理像这样的 Pandas 数据框:

     Day  Hour         Prio  Value
0 1 6 Critical 1
1 1 16 Critical 1
2 1 17 Content 1
3 1 17 Low 1
6 1 19 Critical 1
7 1 20 High 1
8 2 10 High 1
9 2 10 Low 2

现在我想按日和小时分组,同时生成新列,表示 Prio 列中每个值的计数,该列当前存在于 value 列中>。所以我想实现这个结构:

     Day  Hour  Critical  Content  Low  High
0 1 6 1 0 0 0
1 1 16 1 0 0 0
2 1 17 0 1 1 0
6 1 19 1 0 0 0
7 1 20 0 0 0 1
8 2 10 0 0 2 1

我现在尝试了不同的东西,但都不太成功。我的目标是将这个数据框与另一个包含按天和小时排列的其他列的数据框合并,以便进一步聚合它们。特别是我需要优先级中每天/每小时的百分比份额(至少始终存在一个非零值)。

在过去的解决方案中,我遍历每一行以提取单个值,但这相当缓慢。我想让它尽可能高效,因为数据应该在 Bokeh 服务器应用程序中实时更新。也许有一个不使用 itertuples 或类似东西的解决方案?谢谢!

最佳答案

df.groupby(['Day','Hour','Prio']).sum().unstack().fillna(0).astype(int)
# Value
#Prio Content Critical High Low
#Day Hour
#1 6 0 1 0 0
# 16 0 1 0 0
# 17 1 0 0 1
# 19 0 1 0 0
# 20 0 0 1 0
#2 10 0 0 1 2

如果需要,您可以进一步重置索引。

关于python - 从 pandas dataframe groupby 中提取带有计数的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45972854/

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