我有2D列表,每行包含常用名称条目和附加信息。我想找出属于每个公共名称的MYFR元素的总数
For example, this is my list
[['SOME TEXT', 'COMMON_NAME1', None, 'CHOC', 'MYFR01'],
['SOME TEXT2', 'COMMON_NAME1', None, 'ABC', 'MYFR02'],
['SOME TEXT3', 'COMMON_NAME1', None, 'XYZ', 'MYFR03'],
['SOME TEXT4', 'COMMON_NAME2', None, 'XYZ', 'STRAWBERRY'],
['SOME TEXT5', 'COMMON_NAME2', None, 'XYZ', 'MYFR01'],
['SOME TEXT6', 'COMMON_NAME2', None, 'XYZ', 'MYFR02'],
['SOME TEXT7', 'COMMON_NAME2', None, 'XYZ', 'APPLE']
对于每个常用名称,如果它们位于{'MYFR01'、'MYFR02'、'MYFR03'中,我想找到发生次数的总和
这样在这个例子中,我想得到COMMON_NAME1=3和COMMON_NAME2=2
有没有一个简单的方法来实现这一点
多谢各位
您还可以使用
pandas
来执行以下操作:此外,我们还可以使用itertools:
这里唯一需要注意的是,必须首先对数据进行排序
我们将保留一个字典,将
COMMON_NAME
值映射到MYFR
值集,然后在最后测量这些值集的大小。这决定了每个COMMON_NAME
的唯一MYFR
元素的数量下面是一个带有
collections.Counter
的解决方案:这假设您的目标选择总是以
MYFR
开始。仔细阅读您的问题,您还可以使用:关于^{} (一个
dict
的子类)的好处是它可以接受一个generator expression。这意味着您不需要将“过滤”项具体化为一些中间数据结构,例如列表相关问题 更多 >
编程相关推荐