[英]Pandas Dataframe - find sums in list in column
I have a list like 我有一个类似的清单
source = [{'TGA': [0, 1, 0, 0], 'AAC': [0, 0, 0, 1], 'GAA': [0, 0, 1, 0],
'GTG': [1, 0, 0, 0]},{'TGA': [0, 1, 0, 0], 'AAC': [0, 0, 0, 1],
'GAA': [0, 0, 1, 0], 'GTG': [1, 0, 0, 0]} ]
I need to sum every digit in list column: 我需要对列表列中的每个数字求和:
pandas.DataFrame(source)
AAC GAA GTG TGA
0 [0, 0, 0, 1] [0, 0, 1, 0] [1, 0, 0, 0] [0, 1, 0, 0]
1 [0, 0, 0, 1] [0, 0, 1, 0] [1, 0, 0, 0] [0, 1, 0, 0]`
And in final: 最后:
AAC GAA GTG TGA
sum [0, 0, 0, 2 ] [0, 0, 2, 0] [2, 0, 0, 0] [0, 2, 0, 0]
How can I do this? 我怎样才能做到这一点?
You can use this to sum a list of dict of list: 您可以使用它来汇总列表的字典列表:
source = [{'TGA': [0, 1, 0, 0], 'AAC': [0, 0, 0, 1], 'GAA': [0, 0, 1, 0],
'GTG': [1, 0, 0, 0]},{'TGA': [0, 1, 0, 0], 'AAC': [0, 0, 0, 1],
'GAA': [0, 0, 1, 0], 'GTG': [1, 0, 0, 0]} ]
res = {}
for d in source:
for key,value in d.items():
if key not in res:
res[key] = value
else:
res[key] = [x+y for x,y in zip(res[key],value) ]
print res
You can easily change the entries into numpy.array
s, then sum: 您可以轻松地将条目更改为
numpy.array
,然后求和:
import numpy as np
>> df.applymap(np.array).sum()
AAC [0, 0, 0, 2]
GAA [0, 0, 2, 0]
GTG [2, 0, 0, 0]
TGA [0, 2, 0, 0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.