[英]Add elements in a dictionary of lists
我有以下字典:
dic = {title: ['a', 'a', 'a', 'b', 'b', 'c', 'c'], avg1: [1, 2, 3, 4, 5, 6, 7], avg2: [2, 2, 3, 4, 7, 9, 7]}
我想根據列表“title”中的項目添加列表“avg1”和“avg2”中的項目。 結果 dic 將是:
dic = {title: ['a', 'b', 'c'], avg1: [6, 9, 13], avg2: [7, 11, 16]}
我建議你重新考慮你的數據結構,你存儲信息的方式有點尷尬。 下面可以在 Pandas 中做你想做的事情,但它是 Pandas 的一種尷尬使用(我的意思是特別是最后一行)
import pandas as pd
>>> d = {title: ['a', 'a', 'a', 'b', 'b', 'c', 'c'], avg1: [1, 2, 3, 4, 5, 6, 7], avg2: [2, 2, 3, 4, 7, 9, 7]}
>>> df = pd.DataFrame(d)
>>> df
avg1 avg2 title
0 1 2 a
1 2 2 a
2 3 3 a
3 4 4 b
4 5 7 b
5 6 9 c
6 7 7 c
>>> g = df.groupby('title')
>>> g.avg1.apply(sum)
title
a 6
b 9
c 13
Name: avg2, dtype: int64
>>> g.avg2.apply(sum)
title
a 7
b 11
c 16
Name: avg2, dtype: int64
# An very awkward use of pandas
>>> dict(title=g.avg1.apply(sum).index.values.tolist(),
>>> avg1=g.avg1.apply(sum).values.tolist(),
>>> avg2=g.avg2.apply(sum).values.tolist())
{'avg1': [6, 9, 13], 'avg2': [7, 11, 16], 'title': ['a', 'b', 'c']}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.