列表中的元素计数未产生预期结果

Posted

技术标签:

【中文标题】列表中的元素计数未产生预期结果【英文标题】:Counting of elements in list not producing expected result 【发布时间】:2022-01-11 05:20:27 【问题描述】:

我有一个由列表组成的熊猫数据框 dftouse['col a'] :

0        []                            
1        [carbon, nature]              
2        [Lincoln]                     
3        [CBDC]                        
4        [] 

我想跨行计算每个列表中的元素。当我执行时

dftouse['Col a'].apply(lambda x: (len(x)-1) if not x else len(x))

0        1
1        2
2        1
3        1
4        1

预期:

0        0
1        2
2        1
3        1
4        0

如果我能得到调试帮助会很有帮助。 TIA

【问题讨论】:

【参考方案1】:

你也可以在专栏上使用str.len()

>>> dftouse['col a'].str.len()
0    0
1    2
2    1
3    1
4    0
Name: col a, dtype: int64

【讨论】:

【参考方案2】:

apply 上使用len

>>> dftouse['Col a'].apply(len)

0    0
1    2
2    1
3    1
4    0
Name: Col a, dtype: int64

【讨论】:

以上是关于列表中的元素计数未产生预期结果的主要内容,如果未能解决你的问题,请参考以下文章

排序算法——计数排序

在 foreach 循环中切换语句 - 没有得到预期的结果

如何在转换集合到映射期间计算集合中的相同单词

比较计数排序与分布计数排序

比较计数排序与分布计数排序

可变宏参数计数未按预期工作