创建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