首页 > 解决方案 > 熊猫数据框:列值的总和,其中值是列表

问题描述

有一个数据集样本。 在此处输入图像描述

这里列的每个值都是一个整数列表。突出显示的行是相应列列表的总和。意思是,“day1”列的突出显示行是“Day1”列中所有列表的总和,其他列以此类推。我已经尝试过 sum() 与轴,但似乎它不适用于列表。
获得总和列表后,必须将其分配到具有相同列数的新数据框中。下图中的示例, 感谢任何算法、链接、帮助的提示。谢谢。

在此处输入图像描述

标签: pythonpandasdataframe

解决方案


您可以将 DataFrame 转换为 NumPy 数组,如下所示: df.to_numpy()

在收到类似的东西之后:

a = np.random.randint(5, size=(4, 2, 5))

这里的每个块都是您的专栏:

array([[[2, 4, 1, 1, 1],
        [4, 0, 1, 4, 0]],

       [[1, 2, 4, 4, 3],
        [0, 1, 4, 4, 0]],

       [[0, 0, 0, 0, 2],
        [3, 0, 4, 2, 2]],

       [[2, 0, 3, 1, 0],
        [1, 1, 3, 3, 1]]])

然后将其与轴相加:

np.sum(a, axis=1)

产量:

array([[6, 4, 2, 5, 1],
       [1, 3, 8, 8, 3],
       [3, 0, 4, 2, 4],
       [3, 1, 6, 4, 1]])

准备创建 DataFrame

dd = {f'Day{n}':np.array2string(i, separator=',')
      for n,i in enumerate(list(np.sum(ar, axis=1)), start=1)}

创建df

df = pd.DataFrame(list(dd.values()), index=dd.keys()).T

产量:

          Day1         Day2         Day3         Day4
0  [6,4,2,5,1]  [1,3,8,8,3]  [3,0,4,2,4]  [3,1,6,4,1]

推荐阅读