美文网首页Python
Pandas中DataFrame数据类型转换

Pandas中DataFrame数据类型转换

作者: o0龙与猫0o | 来源:发表于2020-02-10 09:49 被阅读0次

    创建DataFrame

    dfx = pd.DataFrame([['11', 1.2, 3], ['22', 4.8, 5]], columns=['a', 'b', 'c'])
    print(dfx)
    print(dfx.dtypes)
        a    b  c
    0  11  1.2  3
    1  22  4.8  5
    a     object
    b    float64
    c      int64
    

    创建时指定类型

    通过 dtype=类型 来指定,会将DataFrame中的数据都转换成指定类型,不能转换的不转换。
    缺点是,无法个性化指定 具体列的类型。

    dfx = pd.DataFrame([['11', 1.2, 3], ['22', 4.8, 5]], columns=['a', 'b', 'c'], dtype=float)
    print(dfx)
    print(dfx.dtypes)
    
          a    b    c
    0  11.0  1.2  3.0
    1  22.0  4.8  5.0
    a    float64
    b    float64
    c    float64
    dtype: object
    

    使用df.astype()类型转换

    df.astype()可以指定具体的列的数据类型

    dfx2 = pd.DataFrame([['11', 1.2, 3], ['22', 4.8, 5]], columns=['a', 'b', 'c'])
    dfx2[['a', 'b']] = dfx2[['a', 'b']].astype(float)
    print(dfx2)
    print(dfx2.dtypes)
    
          a    b  c
    0  11.0  1.2  3
    1  22.0  4.8  5
    a    float64
    b    float64
    c      int64
    dtype: object
    

    pd.to_numeric()自动转换成适当数值类型

    pd.to_numeric()能根据数据情况,自动转换类型

    errors='ignore' 表示遇到错误时忽略,不转换
    errrors='coerce' 遇到错误时转换成Nan
    errrors='coerce' 遇到错误时报错

    dfx3 = pd.DataFrame([['11', 1.2, 3], ['22', 4.8, 5]], columns=['a', 'b', 'c'])
    dfx3 = dfx3.apply(pd.to_numeric, errors='ignore')
    print(dfx3)
    print(dfx3.dtypes)
    
        a    b  c
    0  11  1.2  3
    1  22  4.8  5
    a      int64
    b    float64
    c      int64
    dtype: object
    

    相关文章

      网友评论

        本文标题:Pandas中DataFrame数据类型转换

        本文链接:https://www.haomeiwen.com/subject/twnoxhtx.html