gpt4 book ai didi

Python(pandas)-用计数重置索引

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:58 25 4
gpt4 key购买 nike

我有一个数据框:

  HH     PERSON SPOT    WEIGHT
1002141 aa 1 1332.25
1011831 ab 1 2083.31
1031726 aa 1 2589.09
1042819 aa 1 4736.28
1043006 aa 1 1588.39
1043006 aa 1 1588.39
1060911 aa 1 1113.97
1001665 aa 2 3202.09
1001762 aa 2 2048.54

我想做的是创建一个计数列,所有重复出现的事件,在上面的示例中,第 5 行和第 6 行是相同的,所以我希望输出为:

  HH     PERSON SPOT    WEIGHT    COUNT    
1002141 aa 1 1332.25 1
1011831 ab 1 2083.31 1
1031726 aa 1 2589.09 1
1042819 aa 1 4736.28 1
1043006 aa 1 1588.39 2
1060911 aa 1 1113.97 1
1001665 aa 2 3202.09 1
1001762 aa 2 2048.54 1

我所做的是:

count_table=df.groupby(['HH','PERSON','SPOT ID']).agg(['count']).reset_index() 

它可以工作,但是索引变得困惑 - 并且它按 HH 列而不是原始索引对其进行排序。

有什么想法可以重置表索引吗?

最佳答案

您可以使用 transform 为此添加一个计数列,在本例中它只是组大小:

In [164]:
df['Count'] = df.groupby(['HH','PERSON','SPOT'])['WEIGHT'].transform('size')
df

Out[164]:
HH PERSON SPOT WEIGHT Count
0 1002141 aa 1 1332.25 1
1 1011831 ab 1 2083.31 1
2 1031726 aa 1 2589.09 1
3 1042819 aa 1 4736.28 1
4 1043006 aa 1 1588.39 2
5 1043006 aa 1 1588.39 2
6 1060911 aa 1 1113.97 1
7 1001665 aa 2 3202.09 1
8 1001762 aa 2 2048.54 1

关于Python(pandas)-用计数重置索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620029/

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