pandas 科学符号的阅读指数

20jt8wwn  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(104)

我试图在一个集合上生成一些汇总数据,所以我不关心数字本身,我只关心指数-目标是找到7位数的总数(例如电话号码)。
我有一个CSV格式的数据集,它看起来像这样:
“1.10894110000000000e +07,4.86783700000000000e +06,...“

# numlist is the dataset

x = np.trunc(np.log10(numlist))    
total = (x == 6).sum()

字符串
这给了我7位数的个数。当我选择这种方法时,我假设输入将是一个整数列表,但现在我看到数据实际上可以用科学计数法给出/存储。如果用科学计数法给出,是否有更快的方法来实现相同的结果?有没有一种方法可以 * 只 * 从csv文件中加载指数,而完全跳过log 10行为?
此外,我并不局限于使用numpy数组,但经过一些实验,它们是最快的实现我的目的。

aiazj4mn

aiazj4mn1#

您可能希望编写一个自定义解析器,以便在阅读文件时使用,而不是阅读所有数据,然后将其丢弃。

大小为n的指数计数

def count_exponents(path, n):
    n_str = 'e+0' + str(n)
    out = 0
    with open(path) as fp:
        for line in fp:
            out += line.count(n_str)
    return out

字符串

返回指数

import re
pattern = re.compile('e([+\-]\d+)')

def get_exponents(path):
    with open(path) as fp:
        out = [pattern.findall(line) for line in fp]
    return out

相关问题