Python Pandas:如何在数据帧的一列中合计字典的所有值?

2024-05-15 02:45:08 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的数据帧:

    name                            count_dic
0  name1  {'x2,bv.': 435, 'x3': 4, 'x1': 123}
1  name2            {'x5': 98, 'x2,bv.': 435}

我想把“count_dic”列中的所有dic值加起来,得到如下结果:

^{pr2}$

以下是我尝试过的:

df_map.count_dic.apply(lambda L: sum(L.values())).sum()

但我得到了以下错误:

TypeError: unsupported operand type(s) for +: 'dict_values' and 'dict_values'

有人能帮忙吗?在


Tags: 数据namecountdictvaluessumx1x2
1条回答
网友
1楼 · 发布于 2024-05-15 02:45:08

注意:在我看来,您的数据帧结构有点奇怪,如果数据集变大,它的性能可能会很差。


无论如何,您的代码看起来格式良好[在python2.7.8和3.4.1上测试]

 df = pd.DataFrame(columns = ['name','count_dic'])
 df.loc[0] = ['name0',{'x2,bv.': 435, 'x3': 4, 'x1': 123}]
 df.loc[1] = ['name1',{'x5': 98, 'x2,bv.': 435}]

 df.count_dic.apply(lambda x : sum(x.values())).sum()

       1095

如果你想按行计算值

^{pr2}$

使用时还有一个与涉及的变量类型有关的更具体的问题,这些变量不是int,需要显式转换。在

 df.count_dic.apply(lambda x : sum([int(y) for y in x.values())])

相关问题 更多 >

    热门问题