创建具有相同索引的新系列

时间:2018-10-13 20:32:30

标签: python

我有以下系列

2     [2, 2, 1, 2, 0, 0, 5, 8, 7, 1, 2, 1, 0, 8, 4, ...
5                                          [3, 1, 5, 0]
8     [9, 0, 0, 0, 9, 0, 6, 1, 7, 0, 1, 4, 6, 1, 3, ...
9               [1, 1, 0, 8, 0, 0, 2, 9, 8, 6, 0, 3, 0]
11    [1, 0, 0, 2, 0, 0, 0, 0, 1, 1, 8, 7, 5, 7, 5, ...

我想创建一个新的系列,以保留索引(2、5、8、9、11),其值等于每行中列表的长度

结果将是

2   25
5   4
8   20
9   13
11  18

1 个答案:

答案 0 :(得分:0)

list(map(lambda x: (x, len(object[x])), indices))

它有点伪代码,因为您没有指定数据类型或变量名,但是一般的方法是您有一个由某个索引x索引的数据对象。因此,遍历所有x并获得结果数据结构的length属性。

编辑:由于您已声明是熊猫,所以请使用一系列整数列表进行尝试:

import pandas as pd
S = pd.Series([[1,2,3], [2,3]], index=[2,4])
print(S)
# 2    [1, 2, 3]
# 4       [2, 3]
lengths = list(map(lambda x: len(S[x]), S.index))
S2 = pd.Series(lengths, index=S.index)
print(S2)
# 2    3
# 4    2