繁体   English   中英

如果另一列的值相同,则添加熊猫 dataframe 列的值

[英]Add the values of a panda dataframe column if the value of another column is the same

我仍然是 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 中的每个唯一值,我想在相同的 position 总结列表 2 中的值。

dic3 = {1:17, 2:9, 3:14, 4:11}

是否可以仅使用列表执行此操作,还是我需要 dataFrame?

我正在尝试做:

  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 arrays 来实现您的结果。

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)

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM