【问题标题】:How can I sum value in list of dataframe如何在数据框列表中求和值
【发布时间】:2022-01-11 10:39:30
【问题描述】:

我想对存储在数据框中的列 path_pair 中的列表中的值求和

session_id path path_pair
T01 abc [0.03, 0.09]
T02 def [0.02, 0.15, 0.26]

所以我想要实现的结果可以是替换同一列或创建一个新列,如下所示:

session_id path path_pair
T01 abc 0.12
T02 def 0.43

我该如何编写脚本?

【问题讨论】:

  • 这些数据帧是什么?熊猫数据框?另外,你试过什么,为什么会失败?

标签: python list dataframe


【解决方案1】:

您可以将sum 函数应用于path_pair 列:

df['path_pair_sum'] = df['path_pair'].apply(sum)

输出:

  session_id path           path_pair  path_pair_sum
0        T01  abc        [0.03, 0.09]           0.12
1        T02  def  [0.02, 0.15, 0.26]           0.43

【讨论】:

    【解决方案2】:

    您可以汇总列表,并使用列表推导来处理整个数据框。

    这是一个例子:

    import pandas as pd
    
    data = {'session_id': ['T01', 'T02'], 'path_pair': [[0.03, 0.09],[0.02, 0.15, 0.26] ] }
    
    
    df = pd.DataFrame(data=data)
    
    df['sum'] = [sum(x) for x in df['path_pair']]
    
    

    您将获得一个包含汇总值的新列。

    【讨论】:

      【解决方案3】:

      您可以通过多种方式做到这一点,其中一种方法是:

      # intialise data of lists.
      data = {'Name':['Tom', 'nick', 'krish', 'jack'],
              'Score':[[20,12], [21,24], [19,34], [18,32]]}
       
      # Create DataFrame
      df = pd.DataFrame(data)
      
      #Sum list in Score and replacing list with sum value
      df['Score'] = [sum(x) for x in df['Score']]
      
      # Print the output.
      df
      

      通过以下代码求和:

      df['Score'] = [sum(x) for x in df['Score']]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-01
        • 2016-08-30
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多