代码之家  ›  专栏  ›  技术社区  ›  SEU

将数据帧中的美元值列转换为整数

  •  0
  • SEU  · 技术社区  · 5 年前

    我在一个列中有一个混合的美元值作为字符串;有些带有$和逗号,有些没有。如何将这些值转换为整数值?这是一个样品。

    df2.PRICE
    Out[193]: 
    0         $179,000.00
    1         $110,000.00
    2         $275,000.00
    3         $140,000.00
    4         $180,000.00
        
    564611          85500
    564612          80800
    564613          74500
    564614          75900
    564615          66700
    Name: PRICE, Length: 564616, dtype: object
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   jezrael    5 年前

    使用 Series.replace 转换为 float Series.astype :

    df2.PRICE = df2.PRICE.replace('[\$,]','', regex=True).astype(float)
    print (df2)
               PRICE
    0       179000.0
    1       110000.0
    2       275000.0
    3       140000.0
    4       180000.0
    564611   85500.0
    564612   80800.0
    564613   74500.0
    564614   75900.0
    564615   66700.0
    

    如果有 integers :

    df2.PRICE = df2.PRICE.replace('[\$,]','', regex=True).astype(float).astype(int)
    print (df2)
             PRICE
    0       179000
    1       110000
    2       275000
    3       140000
    4       180000
    564611   85500
    564612   80800
    564613   74500
    564614   75900
    564615   66700
    

    如果转换为浮动失败,则使用 to_numeric 具有 errors='coerce' 对于无法转换为数字的缺少值:

    df2.PRICE = pd.to_numeric(df2.PRICE.replace('[\$,]','', regex=True), errors='coerce')