首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas替换值(grouping by和iteration)

Pandas替换值(grouping by和iteration)
EN

Stack Overflow用户
提问于 2021-09-08 16:05:37
回答 2查看 68关注 0票数 1

早上好

在尝试替换某些值时,我遇到了当前的问题。我有一个数据帧,它有一个列"loc10p“,它将记录分成10个组,对于每个组,我将这些记录分组到更小的组中,但每个组的起始范围是1个子组,而不是计算最后一个子组。例如:

代码语言:javascript
复制
c2[c2.loc10p.isin([1,2])].sort_values(['loc10p','subgrupoloc10'])[['loc10p','subgrupoloc10']]

    loc10p  subgrupoloc10
1   1   1
7   1   1
15  1   1
0   1   2
14  1   2
30  1   2
31  1   2
2   2   1
8   2   1
9   2   1
16  2   1
17  2   1
18  2   2
23  2   2

我如何将其转换为如下所示:

代码语言:javascript
复制
    loc10p  subgrupoloc10
1   1   1
7   1   1
15  1   1
0   1   2
14  1   2
30  1   2
31  1   2
2   2   3
8   2   3
9   2   3
16  2   3
17  2   3
18  2   4
23  2   4

我尝试做一个循环,将每个组类别分成不同的数据帧,然后用前一个组的计数器替换子组的值,但它没有替换任何东西:

代码语言:javascript
复制
w=1
temporal=[]
for e in range(1,11):
    temp=c2[c2['loc10p']==e]
    temporal.append(temp)
    
for e,i in zip(temporal,range(1,9)):
    try:
        e.loc[,'subgrupoloc10']=w
        w+=1
    except:
        pass

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-08 16:20:19

尝试使用ngroup

代码语言:javascript
复制
df['out'] = df.groupby(['loc10p','subgrupoloc10']).ngroup()+1
Out[204]: 
1     1
7     1
15    1
0     2
14    2
30    2
31    2
2     3
8     3
9     3
16    3
17    3
18    4
23    4
dtype: int64
票数 3
EN

Stack Overflow用户

发布于 2021-09-08 16:14:35

尝试:

代码语言:javascript
复制
groups = (df["subgrupoloc10"] != df["subgrupoloc10"].shift()).cumsum()
df["subgrupoloc10"] = groups
print(df)

打印:

代码语言:javascript
复制
    loc10p  subgrupoloc10
1        1              1
7        1              1
15       1              1
0        1              2
14       1              2
30       1              2
31       1              2
2        2              3
8        2              3
9        2              3
16       2              3
17       2              3
18       2              4
23       2              4
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69106384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档