我觉得必须有一个快速的解决方案来解决我的问题,我用多个列表的理解来破解了一个实施得不好的解决方案,这是不理想的。也许有人能帮忙。
我有一组值,这些值是字符串(例如3.2b、1.5m、1.1t),其中最后一个字符自然表示百万、十亿、万亿。在该集合中还存在应保持不变的NaN/“无”值。我希望将这些转换为float或ints,因此在给定的示例中(320000000000015000000001100010000)
蒂亚

最佳答案

您可以创建一个函数:并在数据框中的每个条目中创建一个函数:applymap

powers = {'B': 10 ** 9, 'M': 10 ** 6, 'T': 10 ** 12}
# add some more to powers as necessary

def f(s):
    try:
        power = s[-1]
        return int(s[:-1]) * powers[power]
    except TypeError:
        return s

df.applymap(f)

08-06 18:11