当每个观察是一个看起来像列表的字符串时,计算列表中的项目

时间:2018-04-24 19:06:03

标签: python pandas numpy

我需要一些指导和/或帮助!我有一个数据帧,每行都有一个独特的观察。有一个变量具有嵌套列表的外观作为观察但实际上是一个字符串。

例如:

 Var1
 [X, Y, [Z, A, B]]
 [A, [R,S,T]]
 [B]

我需要的是附加一个变量/系列,其中包含该列表中项目数的计数。例如:

 Var2:
 5
 4
 1

值是字符串,我需要计数而不是总和。嵌套列表是无关紧要的,用逗号分隔的每个项目都被认为是1个计数。

非常感谢!我不知道我是否正在搜索错误的术语,但是每当我做一个长度语句(无论我是否使用for循环),我都会得到字符的长度,而不是项目的长度。

ETA:意识到它实际上是观察的字符串。

1 个答案:

答案 0 :(得分:0)

您可以使用np.hstack

list(map(lambda x :len(np.hstack(x)),df.Var1))
Out[10]: [5, 4, 1]


df['Var2']=list(map(lambda x :len(np.hstack(x)),df.Var1))
df
Out[12]: 
                Var1  Var2
0  [X, Y, [Z, A, B]]     5
1     [A, [R, S, T]]     4
2                [B]     1