我有一个矩阵形(600,90亿)保存为*.txt
文件。矩阵的每一行由不同的样品名称sample_name1
,sample_name2
等来命名。但是,存在未标准化的样品名称,例如, s###30023
如何用Python统计每个矩阵行的字符?计数器()?
之后,有三个字符的字符串,每个字符长度约90亿字符。
sample_name1 ab2ab222baab22ba2bab2b2aab22ab22bababab2baab2b2a
的矩阵是按以下格式:
600 9123001002
sample_name1 ab2ab222baab22ba2bab2b2aab22ab22bababab2baab2b2a2bababab2baab2b2ab2a...
sample_name2 abbbbbbbbbbbb2bbbbbbbbbbabbbbbbaaabbbbbbbbb222bbbbbabababbbb2b2b2bbb...
...
我想创建与所计数的独特字符的数目各样品的一个字典(或列表,熊猫数据帧)。也就是说,以字典形式:
sample_name1 = {'a': 1824600201, 'b': 2736900300, '2': 4561500501}
为每一行。
在Python中统计字符的最快方法是使用from collections import Counter
。可以将文本文件加载到numpy
中,遍历矩阵的每一行,然后对每一行使用Counter()
。
但是,如何为每一行刮取正确的标签,特别是这些标签不是标准化的?也许我可以为每个矩阵行取第一个X字符?
是你保证一个空格将标签与文本分开吗? – AChampion
@AChampion是的,它看起来像一个标签。 – ShanZhengYang
@尚正阳:连续有没有其他的空格字符? –