转换大小为数字

时间:2019-06-16 16:14:45

标签: python dataframe

在一个数据框中,在特定的列中,我具有19M,2.8M之类的大小值。 M表示百万,以此类推,还有其他可能性(m, K.)。

我正在尝试使用正则表达式将它们转换为数字,但是该函数转换的是数字,例如19000000.0。我必须消除所有的.0

代码在这里:

conversion = re.compile('(?P<amount>\d+\.{0,1}\d*)(?P<unit>\w{0,1})')

def unita(unit):

    if unit == 'M':
        return 1000000
    if unit == 'k':
        return 1000
    return 1

def to_numeric(elem):
    m = conversion.search(elem)
    if m is None:
        return None
    unit = m.group('unit')
    mult = unita(unit)
    amount = float(m.group('amount'))
    return int(amount * mult)

1 个答案:

答案 0 :(得分:1)

对于要转换为整数的数据框中的列,请使用

df['column'] = df['column'].astype(int)