更改 Pandas Dataframe 中一列或多列的数据类型
pythonserver side programmingprogramming更新于 2025/10/19 0:12:17
很多时候,我们可能需要转换 Pandas Dataframe 中一列或多列的数据类型,以满足某些计算需求。Pandas 中有一些内置函数或方法可以实现这一点。
使用 astype()
通过 astype() 方法,我们可以将新数据类型强加到 Pandas Dataframe 的现有列或所有列。在下面的示例中,我们将所有现有列转换为字符串数据类型。
示例
import pandas as pd
#示例数据框
df = pd.DataFrame({
'DayNo': [1, 2, 3, 4, 5,6,7],
'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'],
'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]})
# 现有数据类型
print(df.dtypes)
# 转换为字符串数据类型
df_str = df.astype(str)
# 验证转换
print("***After Conversion***")
print(df_str.dtypes)
输出
运行上述代码得到以下结果 −
DayNo int64 Name object Qty float64 dtype: object ***After Conversion*** DayNo object Name object Qty object dtype: object
使用 to_numeric()
我们可以使用 to_numeric() 将数据框中当前标记为字符串的数字转换为数字。
示例
import pandas as pd
# 示例数据框
df = pd.DataFrame({
'DayNo': [1, 2, 3, 4, 5,6,7],
'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'],
'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]})
df_str = df.astype(str)
print(df_str.dtypes)
#Applying conversion
print("After Conversion:")
df_num = pd.to_numeric(df_str.DayNo)
print('DayNo:',df_num.dtypes)
运行上述代码得到以下结果 −
输出
DayNo object Name object Qty object dtype: object After Conversion: DayNo: int64
使用 infer_objects()
这是一种软转换方法,我们将 DataFrame 中具有对象数据类型的列转换为更具体的类型。
示例
import pandas as pd
# 示例数据框
df = pd.DataFrame({
'DayNo': [1, 2, 3, 4, 5,6,7],
# 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'],
'Qty': ['2.6', '5', '11.8', '2', '5.6','0','0.25']}, dtype='object')
print(df.dtypes)
#Applying conversion
print("After Conversion:")
df_new = df.infer_objects()
print(df_new.dtypes)
运行上述代码得到以下结果 −
输出
DayNo object Qty object dtype: object After Conversion: DayNo int64 Qty object dtype: object
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

