Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建一个新的列,该列的矢量列的总和为_Python_Pandas - Fatal编程技术网

Python 创建一个新的列,该列的矢量列的总和为

Python 创建一个新的列,该列的矢量列的总和为,python,pandas,Python,Pandas,我有一个如下所示的数据帧: df = pd.DataFrame({'A':[[1,2,3],[4,5,6,7],[8,9]]}) 所有条目都是整数 我想创建一个新的列“B”,读作[5,22,17] 我可以用一个循环来实现这一点,但是有一个单行的解决方案吗?谢谢 检查并重新构建列表列,然后执行sum pd.DataFrame(df.A.tolist()).sum(1) 0 6.0 1 22.0 2 17.0 dtype: float64 df['New']=pd.DataFr

我有一个如下所示的数据帧:

df = pd.DataFrame({'A':[[1,2,3],[4,5,6,7],[8,9]]})
所有条目都是整数

我想创建一个新的列“B”,读作
[5,22,17]


我可以用一个循环来实现这一点,但是有一个单行的解决方案吗?谢谢

检查并重新构建列表列,然后执行
sum

pd.DataFrame(df.A.tolist()).sum(1)
0     6.0
1    22.0
2    17.0
dtype: float64
df['New']=pd.DataFrame(df.A.tolist()).sum(1)

要从数据帧中提取行并将每行相加为内置python列表,请执行以下操作:

res = [sum(x[0]) for x in df.values.tolist()]
res
[6, 22, 17]
要将行和分配到新列中,请执行以下操作:

df['B'] = [sum(x[0]) for x in df.values.tolist()]
df
              A   B
0     [1, 2, 3]   6
1  [4, 5, 6, 7]  22
2        [8, 9]  17

正如@roganjosh所评论的,尽量避免在pandas数据帧中存储内置python对象,如列表。

这不是pandas的好用例。为什么你首先想要一个df?将Python对象(如列表)存储在列中只会使pandas@roganjosh这是我的真实df中的许多专栏之一