【问题标题】:Python: How to sum up the values of a dictionary list in a columnPython:如何总结列中字典列表的值
【发布时间】:2023-01-19 23:40:01
【问题描述】:

我有一个像这样的数据框:

timestamp                                asks
2022-01-01 00:00:00                 [{'price':'0.99', 'size':'12311'},{'price':'0.991', 'size':'20013'}]
2022-01-01 01:00:00                 [{'price':'0.99', 'size':'3122'},{'price':'0.991', 'size':'43221'}]
...

我想要做的是将 size 的值与每个timestamp 相加,得到以下 DataFrame:

timestamp                 asks
2022-01-01 00:00:00       32324
2022-01-01 01:00:00       46343
...

12311+20013= 32324

如何做到这一点(理想情况下使用熊猫)?

【问题讨论】:

    标签: python pandas list dataframe dictionary


    【解决方案1】:
    df["asks"] = df["asks"].explode().str["size"].astype(int).groupby(level=0).sum()
    
    • 将每个字典放在单独的行中
    • 为它们中的每一个获取“size”键的值
      • 由于 ducktyping,.str[...] 适用于任何支持 __getitem__ 的字典
    • 转换为整数并取消爆炸

    要得到

    >>> df
    
                 timestamp   asks
    0  2022-01-01 00:00:00  32324
    1  2022-01-01 01:00:00  46343
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 2021-02-08
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      相关资源
      最近更新 更多