我已经提取了一个键和每个键的值列表,并将它们推入字典中。我的下一步是将每个键的每个列表的所有值加在一起,然后将这些值分配给字典。下面是当前我的字典的示例:
{'1/10/20': [42, 22, 462, 60], '1/11/20': [1, 7, 20], '1/12/20': [1238, 12, 984, 75, 102]
希望实现:
{'1/10/20': 586, '1/11/20': 28, '1/12/20': 2411}
我通过功能按熊猫分组提取了数据:
total = df.groupby('DateIn')['TotalSheet'].apply(list).to_dict()
答案 0 :(得分:3)
使用submenu
,您可以执行以下操作:
Pandas
输出:
import pandas as pd
pd.DataFrame(dict([(k,pd.Series(v)) for k,v in d.items()])).T.sum(axis=1).to_dict()
OR
如果您正在寻找Python:可以使用{'1/10/20': 586, '1/11/20': 28, '1/12/20': 2411}
:
dict comprehension
输出:
d = {'1/10/20': [42, 22, 462, 60], '1/11/20': [1, 7, 20], '1/12/20': [1238, 12, 984, 75, 102]}
{k:sum(v) for k,v in d.items()}
答案 1 :(得分:2)
忽略熊猫背景,只回答如何从给定字典中获取所需字典的问题,这是Python dict理解的一个很好的用例:
result = {
key: sum(l)
for key, l in original_dict.items()
}
答案 2 :(得分:2)
好吧,我想一个简单的for循环就足够了。
x = {'1/10/20': [42, 22, 462, 60], '1/11/20': [1, 7, 20], '1/12/20': [1238, 12, 984, 75, 102]}
for item in x.keys():
x[item] = sum(x[item])
print(x)
您将获得所需的输出,即
{'1/10/20': 586, '1/11/20': 28, '1/12/20': 2411}
干杯。