Python 如果另一列的值相同,则添加panda dataframe列的值

Python 如果另一列的值相同,则添加panda dataframe列的值,python,Python,我仍然是python的新手,而且我遇到了麻烦,我不知道如何根据另一个列表中的值将两个列表中的值相加。下面是一个例子来说明我的想法: list 1 = [1,1,1,2,2,3,3,3,4,4] list 2 = [4,7,6,5,4,7,7,3,5,6] 我想做的是得到这个: 对于列表1中的每个唯一值,我想将列表2中的值汇总到同一位置 dic3 = {1:17, 2:9, 3:14, 4:11} 是否可以仅使用列表执行此操作,还是需要数据帧 我一直在努力: for i in list

我仍然是python的新手,而且我遇到了麻烦,我不知道如何根据另一个列表中的值将两个列表中的值相加。下面是一个例子来说明我的想法:

 list 1 = [1,1,1,2,2,3,3,3,4,4]
 list 2 = [4,7,6,5,4,7,7,3,5,6]
我想做的是得到这个: 对于列表1中的每个唯一值,我想将列表2中的值汇总到同一位置

dic3 = {1:17, 2:9, 3:14, 4:11}
是否可以仅使用列表执行此操作,还是需要数据帧

我一直在努力:

  for i in list1:
      if i== i-1:
           count1 =+ i
      else: 
          count1 = 1 
但它是超级关闭,我似乎没有找到一个解决方案,即使当我试图把一个numpy数组的问题。有人能给我一个提示来帮助解决这个问题吗


感谢您的帮助,非常感谢。

您问题的答案是错误的,应该是
3:17

list1 = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4]
list2 = [4, 7, 6, 5, 4, 7, 7, 3, 5, 6]
prev = list1[0]
dict =  {}
sum = 0
for i in range(len(list1)):
    if prev == list1[i]:
        sum += list2[i]
    else:
        prev = list1[i]
        sum = 0
        sum+=list2[i]
    dict[prev] = sum
print(dict)

您可以使用
numpy
数组来获得结果

list1 = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4]
list2 = [4, 7, 6, 5, 4, 7, 7, 3, 5, 6]

unique=set(list1)
arr1=np.array(list1)
arr2= np.array(list2)

dict={}
for val in unique:
    list2 = np.nonzero(arr1==val)
    dict[val]=arr2[list2[0]].sum()

print(dict)

希望能有所帮助。

目前尚不清楚
list 1
list 2
dic3
之间有什么联系(这本书甚至不是你想要的词典)。另外,问题的标题与你的问题的主体无关。哦,很抱歉不清楚,dic3是我试图达到的结果。我将修改我的帖子,以确保它是正确的,这是清楚的,但是
list 1
list 2
中的什么导致了例如“1:17”?因此,如果list1和list2是相邻的两列,那么三个1与4、7、6相邻,我试图对所有1进行计算,将list2中与1相邻的值相加,对于列表1中的每个值,依此类推。这更有意义吗?在那个例子中,4、7和6都与列表中的1相关联,所以将它们相加是17谢谢你N.Moudgil,这就是诀窍,你会建议我每次遇到这种问题时都使用Numpy数组吗?Numpy,数字Python的缩写。因此,如果你正在处理数字列表并执行高/复杂的计算,它提供了快速且易于执行的算法。谢谢你的评论,我感谢你的回答,我不可能自己来做。然而,目标答案是正确的,我想一个很好的方法是将列表1作为索引。对于每个相同的索引,我想在行中添加相应的值。在我正在处理的数据集中,list1是一个包含SKU编号的列,同一编号重复多次,但每次重复时,下一列中的订单数量都不同,我想了解每个SKU的订单数量总数。不管怎样,谢谢你的帮助