【问题标题】:Count items in list when each observation is a string that looks like a list当每个观察是一个看起来像列表的字符串时,计算列表中的项目
【发布时间】:2026-01-26 10:55:02
【问题描述】:

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

例如:

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

我需要的是附加一个变量/系列,该变量/系列具有该列表中项目数的计数。比如:

 Var2:
 5
 4
 1

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

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

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

【问题讨论】:

标签: python pandas numpy


【解决方案1】:

您可以使用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

【讨论】:

  • 嗯,这行不通。我得到所有字符的长度。该变量包含一个浇头列表,所以它更像是:[Fresh Tomato Salsa, [Rice, Black Beans]] 当我在上面运行它时,我只得到字符的长度而不是 3。
最近更新 更多