我有一个这样的列表:
categories_list = [
['a', array([ 12994, 1262824, 145854, 92469]),
'b', array([273300]),
'c', array([341395, 32857711])],
['a', array([ 356424311, 165573412, 2032850784]),
'b', array([2848105, 228835]),
'c', array([])],
['a', array([1431689, 30655043, 1739919]),
'b', array([597, 251911, 246600]),
'c', array([35590])]
]
其中每个数组属于前面的字母。
示例:a -> array([ 12994, 1262824, 145854, 92469]), b -> array([273300]), 'a' -> array([1431689, 30655043, 1739919]) and so on...
那么,是否可以检索每个字母的总项目数? 需求:
----------
a 10
b 6
c 3
欢迎提出建议
最佳答案
pd.DataFrame(
[dict(zip(x[::2], [len(y) for y in x[1::2]])) for x in categories_list]
).sum()
a 10
b 6
c 3
dtype: int64
<小时/>
我的目标是创建一个字典列表。所以我必须用字典填充
......
来解析每个子列表[ ...... for x in catgories_list]
如果我在
元组
的列表或生成器上使用dict
,它会神奇地将其转换为字典,其中键作为元组中的第一个值,并且值作为元组中的第二个值。dict(...list of tuples...)
的生成器zip
将为我提供元组
zip(list one, list two)
我知道在每个子列表中,我的键位于偶数索引
[0, 2, 4...]
,值位于奇数索引[ 1, 3, 5, ...]
# even odd zip(x[::2], x[1::2])
但是
x[1::2]
将是数组,而我不需要数组。我想要数组的长度。# even odd zip(x[::2], [len(y) for y in x[1::2]])
pandas.DataFrame
将获取字典列表并创建一个数据框。最后,使用
sum
来计算长度。
关于 python Pandas : list of sublist: total items number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357722/