年华123 2022-12-30 03:09 采纳率: 82.4%
浏览 47
已结题

DataFrame中查找指定的值所在的位置的问题

从一个DataFrame中,取出了一列,这列叫column,它是个series

假设column = ['A', 'A', 'B', 'A', 'C', 'B']

我通过去重,已经知道了,column中的值,只有3种情况,['A', 'B', 'C']

现在我想知道column中,值分别等于'A',‘B’,'C'时的行号

即'A'在第1,2,4行中
‘B’在第3,6行中
'C'在第5行中

想要获得{'A':[1,2,4], 'B':[3,6], 'C':[5]}这样的结果。
请问应该如何做?

  • 写回答

2条回答 默认 最新

  • 关注

    img

    
    column = ['A', 'A', 'B', 'A', 'C', 'B']
    dict={}
    a=0
    b=0
    c=0
    for i in range(len(column)):
        if column[i]=='A' and a==0:
            dict['A']=[i+1]
            a+=1
            continue
        if column[i]=='A' and a==1:
            dict['A'].append(i+1)
        if column[i]=='B' and b==0:
            dict['B']=[i+1]
            b+=1
            continue
        if column[i]=='B' and b==1:
            dict['B'].append(i+1)
        if column[i]=='C' and c==0:
            dict['C']=[i+1]
            c+=1
            continue
        if column[i]=='C' and c==1:
            dict['C'].append(i+1)
    print(dict)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    年华123 回复 CSDN专家-深度学习进阶 2022-12-30 06:37

    是这样的,['A','B','C']只针对这列数据,但是实际的数据多的多,可能是['A','B','C','D',……]很多,所以目前这样做局限性很大。我理想中,是否能够这样:比如把[A, B, C,D]这个列表遍历一下,每遍历个值都去和collumn去比,得到相应的行数。。我感觉这样可以,但不知道怎么操作

    回复
    CSDN专家-深度学习进阶 回复 年华123 2022-12-30 06:58

    改成这样就好了,记得采纳下我的回答

    column = ['A', 'A', 'B', 'A', 'C', 'B']
    dict={}
    t=[]
    c1=set(column)
    for i in c1:
        t.append(i)
        dict[i]=[]
    for i in range(len(column)):
        for j in range(len(t)):
            if column[i]==t[j]:
                dict[t[j]].append(i+1)
            
    print(dict)
    
    
    

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部