[英]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.