pandas是Python中一个非常强大的数据分析库,其操作数据的能力非常强大并且易于使用。
一、astype方法
astype方法是pandas中最常用也是最基础的方法之一,可以将指定列的数据类型全部转换为其它类型。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [2.0, 3.0, np.nan, 5.0],
'C': ['john', 'jane', 'mary', 'peter']
})
# 查看数据类型
print(df.dtypes)
# 将列B转换为int类型
df['B'] = df['B'].astype(int)
# 查看数据类型
print(df.dtypes)
上述代码中,我们使用astype将列B的float类型转换为了int类型
二、to_numeric方法
to_numeric方法可以将指定列的数据转换为float或int类型,同时还可以转换含有特殊字符的数据,如‘1,000’。
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': ['1000', '2000', '3000', '4000']
})
# 查看数据类型
print(df.dtypes)
# 将列B转换为int类型
df['B'] = pd.to_numeric(df['B'])
# 查看数据类型
print(df.dtypes)
上述代码中,我们使用to_numeric将列B的字符串类型转换为了int类型
三、infer_objects方法
infer_objects方法可以根据数据的实际情况自动推断数据类型,并进行类型转换。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [2.0, 3.0, np.nan, 5.0],
'C': ['john', 'jane', 'mary', 'peter']
})
# 查看数据类型
print(df.dtypes)
# 转换数据类型
df = df.infer_objects()
# 查看数据类型
print(df.dtypes)
上述代码中,我们使用infer_objects方法自动推断数据类型并进行类型转换。
四、pd.Series和pd.DataFrame中的构造函数
在创建pd.Series和pd.DataFrame时,我们可以使用构造函数指定数据类型,例如:
import pandas as pd
# 创建一个Series,数据类型为float
s = pd.Series([1.0, 2.0, 3.0], dtype=float)
# 创建一个DataFrame,数据类型为int
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
}, dtype=int)
五、astype()指定多个数据类型转换
在进行数据类型转换时,可以使用astype()方法一次指定多个需要转换的数据类型。
import pandas as pd
import numpy as np
# 转换多个数据类型
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [2.0, 3.0, np.nan],
'C': ['john', 'jane', 'mary']
})
df = df.astype({'A': float, 'B': int})
# 查看数据类型
print(df.dtypes)
总结
以上是pandas中几个用于数据类型转换的方法和技巧,可以根据实际需求灵活运用。其中最常用的方法是astype()和to_numeric(),infer_objects()方法在进行数据类型不明的情况下非常有用,而构造函数则可以在创建Series和DataFrame时直接指定数据类型。